Browse Prior Art Database

Trace Entry Allocation and Synchronization of Trace Table Wrapping Using Compare Double and Swap

IP.com Disclosure Number: IPCOM000040316D
Original Publication Date: 1987-Oct-01
Included in the Prior Art Database: 2005-Feb-02
Document File: 1 page(s) / 12K

Publishing Venue

IBM

Related People

Ku, KS: AUTHOR [+2]

Abstract

In a VM/SP operating system which includes a group of virtual machines which share a common storage area, there are special problems involved in using a trace table. In such a system each trace table entry should include a "header", which identifies the type event causing the trace entry, the length of the trace entry, time and date information, virtual machine identification, and a "Trace Entry Verification Count" (TEVC). When the trace table is full, it "wraps" and is reused from the beginning. Since each virtual machine running would be building its own trace entries, and due to the general nature of virtual machines, it is possible for one virtual machine to determine an address to use for its trace entry and then be interrupted before putting the trace entry into that slot.

This text was extracted from a PDF file.
This is the abbreviated version, containing approximately 53% of the total text.

Page 1 of 1

Trace Entry Allocation and Synchronization of Trace Table Wrapping Using Compare Double and Swap

In a VM/SP operating system which includes a group of virtual machines which share a common storage area, there are special problems involved in using a trace table. In such a system each trace table entry should include a "header", which identifies the type event causing the trace entry, the length of the trace entry, time and date information, virtual machine identification, and a "Trace Entry Verification Count" (TEVC). When the trace table is full, it "wraps" and is reused from the beginning. Since each virtual machine running would be building its own trace entries, and due to the general nature of virtual machines, it is possible for one virtual machine to determine an address to use for its trace entry and then be interrupted before putting the trace entry into that slot. This allows another virtual machine to obtain the same address for a second trace entry before the first machine regains control. When the first machine is dispatched, and builds its trace entry, it could potentially destroy the entry built by the second virtual machine. A Compare and Swap instruction could be used to reserve a trace slot; however, if one virtual machine increments the TEVC but is interrupted before completing a Compare and Swap, the second virtual machine can increment the TEVC a second time. This may result in the first trace entry having a TEVC of one more or one less than...