modules/swcore: bugfix in allocator, read new free page sooner when there are…
modules/swcore: bugfix in allocator, read new free page sooner when there are again some pages available This one fixes the situation when allocFSM in one of the input blocks requests usecount set and new allocation (S_PCKSTART_SET_AND_REQ state) while out_nomem is just before the transition from high to low. In that case arbiter grants access to this Input Block request (because setting usecount does not require out_nomem to be '0'). Then, we expect first allocation immediatelly after out_nomem is 0, but reading next page happens only when out_nomem_d1 is '0'. That's too late and the same page address was given to two subsequent allocation requests. The fix forces q_read aligned to out_nomem_d0 to read earlier next allocation address. In addition, _done_ for allocation is now generated only if there was a valid page address read in advance from the memory (to prevent double allocations of the same page).
Showing
Please
register
or
sign in
to comment