Default kern.ipc.shm_allow_removed to 1

George Liaskos geo.liaskos at gmail.com
Fri Aug 30 13:30:12 UTC 2013


Would it be feasible to change the default for 10?

There is a lot of code that depends on the following behavior:

void* address = shmat(shmkey, NULL /* desired address */, 0 /* flags */);
// Here we mark the shared memory for deletion. Since we attached it in the
// line above, it doesn't actually get deleted but, if we crash, this means
// that the kernel will automatically clean it up for us.
shmctl(shmkey, IPC_RMID, 0);
if (address == kInvalidAddress)
  return NULL;

The above snip is from Google Chrome, under FreeBSD with the current
defaults that memory becomes unusable. If you don't follow that route
it becomes extremely difficult to cleanup especially in a beast like
Chrome.

>From what I understand PC-BSD defaults to 1, OpenBSD and Linux also
allow this behavior.

Am I missing something obvious here? It seems to me that the pragmatic
approach is to change this.


Regards,
George


More information about the freebsd-current mailing list