lkml.org 
[lkml]   [2016]   [Jan]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH, RESEND] ipc/shm: handle removed segments gracefully in shm_mmap()
From
Date
On 11/13/2015 08:23 PM, Davidlohr Bueso wrote:
>
> So considering EINVAL, even your approach to bumping up nattach by
> calling
> _shm_open earlier isn't enough. Races exposed to user called rmid can
> still
> occur between dropping the lock and doing ->mmap(). Ultimately this
> leads to
> all ipc_valid_object() checks, as we totally ignore SHM_DEST segments
> nowadays
> since we forbid mapping previously removed segments.
>
> I think this is the first thing we must decide before going forward
> with this
> mess. ipc currently defines invalid objects by merely checking the
> deleted flag.
>
> Manfred, any thoughts?
>
With regards to locking: Sorry, shm is too different to msg/sem/mqueue.

With regards to EIDRM / EINVAL:
When all kernel memory was released, then the kernel cannot find out if
the ID was valid at one time or not.
Thus EIDRM can only be a hint, the OS (kernel/libc) cannot guarantee
that user space will never see something else.
(trivial example: user space sleeps just before the syscall)

So I would not create special code to optimize EIDRM handling for races.
If we sometimes report EINVAL, it would be probably ok as well.

--
Manfred


\
 
 \ /
  Last update: 2016-01-02 13:21    [W:1.220 / U:0.008 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site