bug-hurd
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH hurd] libports: use protected payloads to optimize the object


From: Samuel Thibault
Subject: Re: [PATCH hurd] libports: use protected payloads to optimize the object lookup
Date: Mon, 6 Apr 2015 23:39:38 +0200
User-agent: Mutt/1.5.21+34 (58baf7c9f32f) (2010-12-30)

Justus Winter, le Sat 04 Apr 2015 18:38:53 +0200, a écrit :
> * NEWS: Mention protected payloads.
> * libports/Makefile (SRCS): Add `port-deref-deferred.c'.
> * libports/create-internal.c (_ports_create_port_internal): Set the
> protected payload to the objects address.
> * libports/import-port.c (ports_import_port): Likewise.
> * libports/reallocate-from-external.c (ports_reallocate_from_external):
> Likewise.
> * libports/reallocate-port.c (ports_reallocate_port): Likewise.
> * libports/transfer-right.c (ports_transfer_right): Likewise.
> * libports/manage-multithread.c (ports_manage_port_operations_multithread):
> Use the protected payload for the object lookup if provided.  Add
> thread pool management calls.
> * libports/manage-one-thread.c (ports_manage_port_operations_one_thread):
> Likewise.
> * libports/destroy-right.c (ports_destroy_right): Defer the
> dereferencing of outstanding send rights to avoid a port_info
> use-after-free.
> * libports/port-deref-deferred.c: New file.
> * libports/port-deref-deferred.h: Likewise.
> * libports/ports.h (struct port_bucket): New field `threadpool'.
> (ports_lookup_payload): Check `port_right'.

Indeed, this is a quite elegant solution.  Please just add some
explanations to port-deref-deferred at least to explicit what "old" and
"young" mean, and thus the transition at quiescent state, and then
push.

Samuel



reply via email to

[Prev in Thread] Current Thread [Next in Thread]