···218218 include:219219220220 a. Keeping a count of the number of data-structure elements221221- used by the RCU-protected data structure, including those222222- waiting for a grace period to elapse. Enforce a limit223223- on this number, stalling updates as needed to allow224224- previously deferred frees to complete.221221+ used by the RCU-protected data structure, including222222+ those waiting for a grace period to elapse. Enforce a223223+ limit on this number, stalling updates as needed to allow224224+ previously deferred frees to complete. Alternatively,225225+ limit only the number awaiting deferred free rather than226226+ the total number of elements.225227226226- Alternatively, limit only the number awaiting deferred227227- free rather than the total number of elements.228228+ One way to stall the updates is to acquire the update-side229229+ mutex. (Don't try this with a spinlock -- other CPUs230230+ spinning on the lock could prevent the grace period231231+ from ever ending.) Another way to stall the updates232232+ is for the updates to use a wrapper function around233233+ the memory allocator, so that this wrapper function234234+ simulates OOM when there is too much memory awaiting an235235+ RCU grace period. There are of course many other236236+ variations on this theme.228237229238 b. Limiting update rate. For example, if updates occur only230239 once per hour, then no explicit rate limiting is required,