Changes between Version 6 and Version 7 of Ticket #228
- Timestamp:
- 06/22/2021 12:54:44 PM (5 years ago)
Legend:
- Unmodified
- Added
- Removed
- Modified
-
Ticket #228 – Description
v6 v7 30 30 In situations where that sign bit is "1"b, the ASQ instruction adds a negative value to the previous tc_data|governing_credit_bank, often causing it to become negative. Code which assigns those credits (see pxss.alm line 2963++) ignores assignment of credits if the bank value is negative. Thus the negative tc_data|govern_credit_bank value remains negative when scheduling ends on that CPU. 31 31 32 The next time the scheduler runs on that CPU, if the delta_t value has a right-word storage that again looks like a negative integer, that negative value again gets added to the still-negative tc_data|governing_credit_bank value. This process can continue until the ASQ instruction overflows the negative range of the fixed bin(35) signed storage space. ASQ then turns on the Overflow indicator bit. And ifthe Overflow Mask indicator bit is off, an Overflow Fault is also triggered.32 The next time the scheduler runs on that CPU, if the delta_t value has a right-word storage that again looks like a negative integer, that negative value again gets added to the still-negative tc_data|governing_credit_bank value. This process can continue until the ASQ instruction overflows the negative range of the fixed bin(35) signed storage space. ASQ then turns on the Overflow indicator bit. And since the Overflow Mask indicator bit is off, an Overflow Fault is also triggered. 33 33 34 34 That scenario (or some variant) caused an Overflow Fault while running in ring-0, producing the GHM system to crash.
