 |
The Question is:
Due to MC SYSGEN HELP MPW_*LIMIT, a system deadlock occurs if MPW_WAITLIMIT is
less than MPW_HILIMIT.
Then why is AUTOGEN calculating MPW_HILIMIT to 32768 and MPW_WAITLIMIT 13363,
which is less?
Does it make any sense if MPW_WAITLIMIT is set higher than MPW_HILIMIT?
The Answer is :
AUTOGEN originally calculated MPW_HILIMIT as 32768. It was then
directed to use tha hardcoded value of 13107.
Based on this forced MPW_HILIMIT value, AUTOGEN calculated the
MPW_WAITLIMIT value as 13363 -- which is higher than MPW_HILIMIT
and which would avoid a possible deadlock.
Regarding "Does it make any sense if MPW_WAITLIMIT is set higher than
MPW_HILIMIT?", yes. Writing of modified pages starts when the size of
the modified page list exceeds MPW_HILIMIT. There are certainly other
reasons to write modified pages, but they do not particularly apply here.
Processes are placed into the RWMPB wait state when the process places
a page on the modified page list and the size of the modified list
exceeds MPW_WAITLIMIT. Again, there are more reasons, but...
By making MPW_WAITLIMIT larger than MPW_HILIMIT, the modified page
writer gets a head start on reducing the modified page list and it is
less likely that processes will have to wait in RWMPB.
|