Re: [PATCH v11 2/3] ipc: Conserve sequence numbers in ipcmni_extend mode

From: Manfred Spraul
Date: Tue Nov 20 2018 - 14:42:04 EST


This is a multi-part message in MIME format. Hi Matthew,

On 11/10/18 8:41 AM, Matthew Wilcox wrote:
On Fri, Nov 09, 2018 at 03:11:31PM -0500, Waiman Long wrote:
The mixing in of a sequence number into the IPC IDs is probably to
avoid ID reuse in userspace as much as possible. With ipcmni_extend
mode, the number of usable sequence numbers is greatly reduced leading
to higher chance of ID reuse.

To address this issue, we need to conserve the sequence number space
as much as possible. Right now, the sequence number is incremented
for every new ID created. In reality, we only need to increment the
sequence number when one or more IDs have been removed previously to
make sure that those IDs will not be reused when a new one is built.
This is being done irrespective of the ipcmni mode.
That's not what I said. Increment the sequence ID when the cursor wraps,
not when there's been a deletion.

Something like the attached patch?

Unfortunately, idr_alloc_cyclic cannot be used, this creates some copy&paste from lib/idr.c to ipc/util.c
[as potential replacement for patch 2 and 3 from the series]

--

ÂÂÂ Manfred