<feed xmlns='http://www.w3.org/2005/Atom'>
<title>teythoon/hurd.git/libports, branch master</title>
<subtitle>Personal Hurd development repository</subtitle>
<id>https://darnassus.sceen.net/cgit/teythoon/hurd.git/atom?h=master</id>
<link rel='self' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/atom?h=master'/>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/'/>
<updated>2016-10-15T19:36:38Z</updated>
<entry>
<title>Avoid warnings if increasing a threads priority fails.</title>
<updated>2016-10-15T19:36:38Z</updated>
<author>
<name>Justus Winter</name>
<email>justus@gnupg.org</email>
</author>
<published>2016-10-13T20:57:58Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=355577bc99c91363a1b7828e81086031ce75979b'/>
<id>urn:sha1:355577bc99c91363a1b7828e81086031ce75979b</id>
<content type='text'>
* libports/manage-multithread.c (adjust_priorities): Avoid displaying
error messages if we do not have the privileged processor set port by
treating this error condition like EPERM.
* proc/main.c (increase_priority, main): Likewise.
</content>
</entry>
<entry>
<title>libports: preserve the complex message flag</title>
<updated>2016-02-23T22:35:30Z</updated>
<author>
<name>Justus Winter</name>
<email>justus@gnupg.org</email>
</author>
<published>2016-02-23T22:35:30Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=5512308e4176303b25d52350c3c48dc37c3c665d'/>
<id>urn:sha1:5512308e4176303b25d52350c3c48dc37c3c665d</id>
<content type='text'>
* libports/manage-multithread.c (internal_demuxer): Preserve all
message flags when we store the objects address as payload in the
message.
* libports/manage-one-thread.c (internal_demuxer): Likewise.
</content>
</entry>
<entry>
<title>libports: remove unused variables</title>
<updated>2015-09-22T21:55:16Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2015-09-14T13:04:55Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=2496f1c8cb1ccbe6a42a7cab2b50a1deb5ae27d5'/>
<id>urn:sha1:2496f1c8cb1ccbe6a42a7cab2b50a1deb5ae27d5</id>
<content type='text'>
* libports/inhibit-all-rpcs.c (ports_inhibit_all_rpcs): Remove unused
variable `bucket'.
* libports/inhibit-class-rpcs.c (ports_inhibit_class_rpcs): Remove unused
variables `pi' and `rpc'.
</content>
</entry>
<entry>
<title>Install port-deref-deferred.h header for ports.h</title>
<updated>2015-09-10T17:52:54Z</updated>
<author>
<name>James Clarke</name>
<email>jrtc27@jrtc27.com</email>
</author>
<published>2015-09-10T10:59:04Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=5e8e02f53c47bcf108c64263249795f702b8b19a'/>
<id>urn:sha1:5e8e02f53c47bcf108c64263249795f702b8b19a</id>
<content type='text'>
* libports/Makefile (installhdrs): Add port-deref-deferred.h for ports.h
</content>
</entry>
<entry>
<title>libports: clarify why we emulate protected payloads</title>
<updated>2015-08-14T08:03:46Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2015-08-14T08:03:46Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=8d862231a0016dcf40f269e73d5b189606038490'/>
<id>urn:sha1:8d862231a0016dcf40f269e73d5b189606038490</id>
<content type='text'>
The Hurd uses protected payloads to improve the receiver lookup on the
server side to the point that we no longer do a hash table lookup in
the dispatch code.

If the kernel does not support protected payloads, we degrade
gracefully, do one lookup in libports' dispatching code, and emulate
the protected payload feature to still save one hash table lookup in
the intrans function.

* libports/manage-multithread.c (ports_manage_port_operations_multithread):
Add comment.
* libports/manage-one-thread.c (ports_manage_port_operations_one_thread):
Likewise.
</content>
</entry>
<entry>
<title>libports: use protected payloads to optimize the object lookup</title>
<updated>2015-04-07T12:23:36Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2013-11-23T15:12:55Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=4241dd5673566a61add85bd9eb52d4ae7db2750a'/>
<id>urn:sha1:4241dd5673566a61add85bd9eb52d4ae7db2750a</id>
<content type='text'>
* 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'.
</content>
</entry>
<entry>
<title>libports: avoid acquiring global lock in message dispatch</title>
<updated>2015-02-17T19:29:15Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2014-12-15T10:53:26Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=fb8c531ddeef55c8581d3882bd1b1f501d980a30'/>
<id>urn:sha1:fb8c531ddeef55c8581d3882bd1b1f501d980a30</id>
<content type='text'>
* libports/interrupt-operation.c (ports_S_interrupt_operation): Update
`cancel_threshold' using atomic operations.
* libports/manage-multithread.c (internal_demuxer): Avoid taking the lock.
* libports/ports.h (struct port_info): Mention that one needs atomic
operations to access `cancel_threshold'.
</content>
</entry>
<entry>
<title>libports: silence pointless error message</title>
<updated>2015-01-17T17:24:58Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2015-01-03T15:21:24Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=1901e7aa92ccd021d73f32aa97661428d7142cd4'/>
<id>urn:sha1:1901e7aa92ccd021d73f32aa97661428d7142cd4</id>
<content type='text'>
* libports/manage-multithread.c (adjust_priority): Silence pointless
error message.
</content>
</entry>
<entry>
<title>libports: add a payload-aware intrans function</title>
<updated>2014-12-07T14:38:17Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2014-04-08T21:40:26Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=f8ce37835ad53f67da245db6fed7d2a028514b01'/>
<id>urn:sha1:f8ce37835ad53f67da245db6fed7d2a028514b01</id>
<content type='text'>
* libports/mig-decls.h (begin_using_port_info_payload): New function.
* libports/mig-mutate.h: Add mutator.
</content>
</entry>
<entry>
<title>libports: add `ports_lookup_payload' and `ports_payload_get_name'</title>
<updated>2014-12-07T14:38:17Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2013-11-23T15:19:08Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=92b49a0fc6f24cbd970f8a9f79cf2513cd58a1b3'/>
<id>urn:sha1:92b49a0fc6f24cbd970f8a9f79cf2513cd58a1b3</id>
<content type='text'>
These two functions map payloads to objects and port names. The former
can be used like `ports_lookup_port' to look up objects, the latter to
map payloads to port names if the server function expects a
`mach_port_t'.

* libports/ports.h: Add function ports_payload_get_name.
* libports/lookup-payload.c: New file.
* libports/ports.h (ports_lookup_payload): Add declaration.
* libports/Makefile (SRCS): Add lookup-payload.c.
</content>
</entry>
</feed>
