<feed xmlns='http://www.w3.org/2005/Atom'>
<title>teythoon/gnumach.git/ipc, branch pmm-2015-08-28</title>
<subtitle>Personal GNU Mach development repository</subtitle>
<id>https://darnassus.sceen.net/cgit/teythoon/gnumach.git/atom?h=pmm-2015-08-28</id>
<link rel='self' href='https://darnassus.sceen.net/cgit/teythoon/gnumach.git/atom?h=pmm-2015-08-28'/>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/gnumach.git/'/>
<updated>2015-08-28T13:48:04Z</updated>
<entry>
<title>kern/slab: directmap update</title>
<updated>2015-08-28T13:48:04Z</updated>
<author>
<name>Richard Braun</name>
<email>rbraun@sceen.net</email>
</author>
<published>2014-12-10T20:52:40Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/gnumach.git/commit/?id=5364d6833486d90338a17aae5151e8feb45688b5'/>
<id>urn:sha1:5364d6833486d90338a17aae5151e8feb45688b5</id>
<content type='text'>
The main impact of the direct physical mapping on the kmem module is the
slab size computation. The page allocator requires the allocation size
to be a power-of-two above the page size since it uses the buddy memory
allocation algorithm.

Custom slab allocation functions are no longer needed since the only
user was the kentry area, which has been removed recently.

The KMEM_CACHE_NOCPUPOOL flag is also no longer needed since CPU pools,
which are allocated from a kmem cache, can now always be allocated out
of the direct physical mapping.
</content>
</entry>
<entry>
<title>codify locking contracts</title>
<updated>2015-08-28T13:47:56Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2015-08-16T00:18:47Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/gnumach.git/commit/?id=787a6034170b59d55afe8d0a12cb0904f20cb74d'/>
<id>urn:sha1:787a6034170b59d55afe8d0a12cb0904f20cb74d</id>
<content type='text'>
Conflicts:
	vm/vm_page.h
</content>
</entry>
<entry>
<title>ipc/ipc_mqueue: use a general lock</title>
<updated>2015-08-28T13:47:56Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2015-08-20T09:43:56Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/gnumach.git/commit/?id=47c58daea504518847167900de3243264054ba0a'/>
<id>urn:sha1:47c58daea504518847167900de3243264054ba0a</id>
<content type='text'>
* ipc/ipc_mqueue.h (struct ipc_mqueue): Use a general lock.  Adapt macros.
</content>
</entry>
<entry>
<title>ipc: use a general lock for the ipc_port_multiple lock</title>
<updated>2015-08-28T13:47:56Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2015-08-17T19:45:31Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/gnumach.git/commit/?id=e56c18dce6223bf3c9495830fe010f2cd9d3be0a'/>
<id>urn:sha1:e56c18dce6223bf3c9495830fe010f2cd9d3be0a</id>
<content type='text'>
* ipc/ipc_port.c (ipc_port_multiple_lock_data): Use a general lock.
* ipc/ipc_port.h (ipc_port_multiple_lock_data): Likewise.
(ipc_port_multiple_{lock_init,lock,unlock}): Adapt accordingly.
</content>
</entry>
<entry>
<title>kern: use a general lock for the IPC structures</title>
<updated>2015-08-28T13:47:56Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2015-07-25T00:29:58Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/gnumach.git/commit/?id=d9da5d41510e102983a51f9c9be08a80956b33e4'/>
<id>urn:sha1:d9da5d41510e102983a51f9c9be08a80956b33e4</id>
<content type='text'>
* ipc/ipc_thread.h (ith_{lock_init,lock,unlock}): Use a general lock.
* kern/task.h (struct task): Use a general lock for `itk_lock_data'.
(itk_{lock_init,lock,unlock}): Use a general lock.
* kern/thread.h (struct thread): Use a general lock for `ith_lock_data'.
</content>
</entry>
<entry>
<title>yyy more general locks, crashes, maybe b/c interrupt handler</title>
<updated>2015-08-28T13:47:56Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2015-07-18T14:55:12Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/gnumach.git/commit/?id=6218998e6c0392d988c86407380a841d90e874c8'/>
<id>urn:sha1:6218998e6c0392d988c86407380a841d90e874c8</id>
<content type='text'>
</content>
</entry>
<entry>
<title>ipc: fix locking issues</title>
<updated>2015-08-28T13:47:56Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2015-08-18T09:32:15Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/gnumach.git/commit/?id=0e17ccface304dac65efd86b3c6262afeecac05a'/>
<id>urn:sha1:0e17ccface304dac65efd86b3c6262afeecac05a</id>
<content type='text'>
* ipc/ipc_port.h (struct ipc_port): Document locking exception.
* ipc/ipc_port.c (ipc_port_destroy): Avoid accessing `port's fields
without the lock.
(ipc_port_alloc_special): Lock `port'.
* ipc/mach_msg.c (mach_msg_trap): Avoid using
`ipc_port_flag_protected_payload' on unlocked port.
* ipc/ipc_kmsg.c (ipc_kmsg_copyout_header): Likewise.
</content>
</entry>
<entry>
<title>ipc/space: inline reference counting</title>
<updated>2015-07-25T02:00:43Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2015-07-20T19:16:27Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/gnumach.git/commit/?id=6db6bf440bf4187d38484c97eccb0592de5743de'/>
<id>urn:sha1:6db6bf440bf4187d38484c97eccb0592de5743de</id>
<content type='text'>
* ipc/ipc_space.h (is_{reference,release}): Use the macro variant.
</content>
</entry>
<entry>
<title>ipc: use a general lock to protect IPC spaces</title>
<updated>2015-07-15T13:23:14Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2015-07-15T10:40:50Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/gnumach.git/commit/?id=7c9b83c90e2acc4f9eb74713c47796a3c0a08800'/>
<id>urn:sha1:7c9b83c90e2acc4f9eb74713c47796a3c0a08800</id>
<content type='text'>
This fixes a corruption in the radix trees representing the IPC spaces
when memory was tight.

* ipc/ipc_space.h: Use a general lock to protect IPC spaces.
</content>
</entry>
<entry>
<title>ipc: fix the locking of the IPC entry allocation functions</title>
<updated>2015-07-15T13:23:14Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2015-07-15T13:11:05Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/gnumach.git/commit/?id=8a68e0a6f3a62c3e382791774e5feb9506e1f7d8'/>
<id>urn:sha1:8a68e0a6f3a62c3e382791774e5feb9506e1f7d8</id>
<content type='text'>
* ipc/ipc_entry.c (ipc_entry_alloc): Assume the space is write-locked.
(ipc_entry_alloc_name): Likewise.
* ipc/ipc_object.c: Fix the locking around all call sites to the two
functions where the space was not locked before.
</content>
</entry>
</feed>
