<feed xmlns='http://www.w3.org/2005/Atom'>
<title>teythoon/hurd.git/console, 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-30T19:58:55Z</updated>
<entry>
<title>wire console display pages</title>
<updated>2016-10-30T19:58:55Z</updated>
<author>
<name>Samuel Thibault</name>
<email>samuel.thibault@ens-lyon.org</email>
</author>
<published>2016-10-30T19:58:55Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=81fb68fee81769d81c373e3af5a508d706b7e3d6'/>
<id>urn:sha1:81fb68fee81769d81c373e3af5a508d706b7e3d6</id>
<content type='text'>
to work around improper handling of getting paged out.

* console/display.c (user_create): Call vm_wire() on the created user data.
</content>
</entry>
<entry>
<title>libpager: provide 'pager_create_alloc'</title>
<updated>2016-08-07T21:28:45Z</updated>
<author>
<name>Justus Winter</name>
<email>justus@gnupg.org</email>
</author>
<published>2016-05-22T17:35:10Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=0e3a795af98b6441d0a9928036e140978511e272'/>
<id>urn:sha1:0e3a795af98b6441d0a9928036e140978511e272</id>
<content type='text'>
Add a variant to 'pager_create' that allocates memory for the user
hook next to the pager data increasing locality.

* console/pager.c (pager_clear_user_data): Fix type of 'idx', do not
free 'upi'.
(user_pager_create): Use the new function.
* doc/hurd.texi: Document new function.
* ext2fs/pager.c (pager_clear_user_data): Don't free 'upi'.
(diskfs_get_filemap): Use the new function.
* fatfs/pager.c (pager_clear_user_data): Don't free 'upi'.
(diskfs_get_filemap): Use the new function.
* isofs/pager.c (pager_clear_user_data): Don't free 'upi'.
(diskfs_get_filemap): Use the new function.
* libpager/pager-create.c (_pager_create): New generic allocation
function.
(pager_create): Use the new generic function.
(pager_create_alloc): New function.
* libpager/pager.h (pager_create_alloc): New prototype.
</content>
</entry>
<entry>
<title>netfs: Remove global reference count lock.</title>
<updated>2016-03-21T18:45:11Z</updated>
<author>
<name>Flavio Cruz</name>
<email>flaviocruz@gmail.com</email>
</author>
<published>2016-03-15T08:50:02Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=5eef605eb523e4148ccd22578327492178cfd0c4'/>
<id>urn:sha1:5eef605eb523e4148ccd22578327492178cfd0c4</id>
<content type='text'>
* libnetfs/drop-node.c: Remove use of netfs_node_refcnt_lock.
* libnetfs/init-init.c: Remove netfs_node_refcnt_lock.
* libnetfs/make-node.c: Initialize refcounts in refcounts_init.
* libnetfs/netfs.h: Use refcounts_t for tracking node references. Remove
netfs_node_refcnt_lock. Add netfs_nref_light, netfs_nrele_light and
handler netfs_try_dropping_softrefs. Adjust comments.
* libnetfs/nput.c: Use refcounts_t. Call netfs_try_dropping_softrefs to
remove any soft reference that the translator might have acquired
during the lifetime of the node. Implement empty
netfs_try_dropping_softrefs.
* libnetfs/nref.c: Implement netfs_nref_light.
* libnetfs/nrele.c: Use refcounts_t and netfs_try_dropping_softrefs.
Implement netfs_nrele_light.
* ftpfs/dir.c: Use netfs_nref without locking the old
netfs_node_refcnt_lock.
* ftpfs/node.c: Likewise.
* usermux/mux.c: Use netfs_nref to increase hard references of the node.
* hostmux/mux.c: Use netfs_nref to increase hard references of the node.
* trans/fakeroot.c (new_node): Use a light reference when storing a node in the
hash table.
* trans/fakeroot.c (netfs_try_dropping_softrefs): Implement
netfs_try_dropping_softrefs to remove the node from the hash table.
* trans/fakeroot.c (netfs_node_norefs): Remove code to remove the node
from the hash table.
* trans/fakeroot.c (netfs_S_dir_lookup): Simplify lookup code since we
don't need to lock netfs_node_refcnt_lock anymore.
* procfs/netfs.c: Remove use of netfs_node_refcnt_lock.
* nfs/cache.c: Add mutex to handle exclusive access to nodehash. This
replaces the use of netfs_node_refcnt_lock.
* nfs/cache.c (lookup_handle): Use nodehash_ihash_lock when accessing
nodehash. Use netfs_nref_light to add one soft reference to the node
just added to nodehash.
* nfs/cache.c (netfs_node_norefs): Use netfs_nref. Don't use
netfs_node_refcnt_lock and don't remove the node from nodehash here.
* nfs/cache.c (netfs_try_dropping_softrefs): Drop the light reference
when the node has no more hard references.
* nfs/cache.c (recache_handle): Use nodehash_ihash_lock instead.
* nfs/ops.c (netds_attempt_unlink): Use refcounts_references.
* console/console.c (netfs_node_norefs): Use a soft reference to store
a node in dir_node, cons_node, disp_node, inp_node.
* console/console.c (netfs_try_dropping_softrefs): When dropping all
soft references remove node pointer from the fields above.
</content>
</entry>
<entry>
<title>Drop OTHERLIBS and use LDLIBS exclusively</title>
<updated>2015-12-31T20:47:32Z</updated>
<author>
<name>Flavio Cruz</name>
<email>flaviocruz@gmail.com</email>
</author>
<published>2015-12-31T16:49:25Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=a70c7531ed3a6378dd527da005a1fe63fbb4871a'/>
<id>urn:sha1:a70c7531ed3a6378dd527da005a1fe63fbb4871a</id>
<content type='text'>
When cross-compiling, OTHERLIBS magically turns -lpthread into the path
to the host libpthread.so file, resulting in build issues. LDLIBS does
not suffer from this problem and it seems that is already being used in
other Makefiles. This patch removes OTHERLIBS entirely from the build
system.

* Makeconf: Remove references to OTHERLIBS
* auth/Makefile: Replace OTHERLIBS with LDLIBS.
* boot/Makefile: Likewise.
* console/Makefile: Likewise.
* exec/Makefile: Likewise.
* ext2fs/Makefile: Likewise.
* fatfs/Makefile: Likewise.
* ftpfs/Makefile: Likewise.
* hostmux/Makefile: Likewise.
* isofs/Makefile: Likewise.
* libhurd-slab/Makefile: Likewise.
* nfs/Makefile: Likewise.
* nfsd/Makefile: Likewise.
* pfinet/Makefile: Likewise.
* proc/Makefile: Likewise.
* procfs/Makefile: Likewise.
* random/Makefile: Likewise.
* storeio/Makefile: Likewise.
* term/Makefile: Likewise.
* tmpfs/Makefile: Likewise.
* usermux/Makefile: Likewise.
</content>
</entry>
<entry>
<title>Remove unused variables</title>
<updated>2015-11-06T09:39:53Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2015-11-06T09:39:53Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=a9eb3e9765a21f9903705e2b9f46694529af8155'/>
<id>urn:sha1:a9eb3e9765a21f9903705e2b9f46694529af8155</id>
<content type='text'>
* console/pager.c (user_pager_init): Remove unused variables.
* ext2fs/pager.c (create_disk_pager): Likewise.
* fatfs/pager.c (create_fat_pager): Likewise.
* storeio/pager.c (init_dev_paging): Likewise.
</content>
</entry>
<entry>
<title>Add support for ANSI.SYS SCP/RCP escape codes</title>
<updated>2015-09-12T10:00:48Z</updated>
<author>
<name>James Clarke</name>
<email>jrtc27@jrtc27.com</email>
</author>
<published>2015-09-11T23:42:05Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=90ae149104ee0f55309f8fc10fecedb7b2aef472'/>
<id>urn:sha1:90ae149104ee0f55309f8fc10fecedb7b2aef472</id>
<content type='text'>
This adds support for CSI s and u, which are equivalent to ESC 7 and 8,
saving/restoring the cursor position.

* console/display.c (handle_esc_bracket): Added support for CSI s and u.
</content>
</entry>
<entry>
<title>Fix race condition in ext2fs when remounting</title>
<updated>2015-09-06T19:40:20Z</updated>
<author>
<name>James Clarke</name>
<email>jrtc27@jrtc27.com</email>
</author>
<published>2015-08-27T16:22:11Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=7a2c17fcbb789997421725d726340301ef35d84c'/>
<id>urn:sha1:7a2c17fcbb789997421725d726340301ef35d84c</id>
<content type='text'>
On some systems, ext2fs.static would regularly hang at startup, as a
race condition meant it would process paging requests while remounting.
To fix this, libpager has been altered to allow inhibiting and resuming
its worker threads, and ext2fs uses this to inhibit paging while
remounting.

* console/pager.c (pager_requests): New variable.
(user_pager_init): Updated call to pager_start_workers to use new
pager_requests variable.
* daemons/runsystem.sh: Removed artificial delay working around the race
condition.
* ext2fs/ext2fs.c (diskfs_reload_global_state): Call new
inhibit_ext2_pager and resume_ext2_pager functions, and leave sblock as
non-NULL so it will be munmapped.
* ext2fs/ext2fs.h (inhibit_ext2_pager,resume_ext2_pager): New functions.
* ext2fs/pager.c (file_pager_requests): New variable.
(create_disk_pager): Updated call to pager_start_workers to use new
file_pager_requests variable.
(inhibit_ext2_pager,resume_ext2_pager): New functions.
* fatfs/fatfs.h (inhibit_fat_pager,resume_fat_pager): New functions.
* fatfs/pager.c (file_pager_requests): New variable.
(create_fat_pager): Updated call to pager_start_workers to use new
file_pager_requests variable.
(inhibit_fat_pager,resume_fat_pager): New functions.
* libdiskfs/disk-pager.c (diskfs_disk_pager_requests): New variable.
(diskfs_start_disk_pager): Updated call to pager_start_workers to use
new diskfs_disk_pager_requests variable.
* libdiskfs/diskfs-pager.h (diskfs_disk_pager_requests): New variable.
* libpager/demuxer.c (struct pager_requests): Renamed struct requests to
struct pager_requests. Replaced queue with queue_in and queue_out
pointers. Added inhibit_wakeup field.
(pager_demuxer): Updated to use new queue_in/queue_out pointers. Only
wake up workers if not inhibited.
(worker_func): Updated to use new queue_in/queue_out pointers. Final
worker thread to sleep notifies the inhibit_wakeup condition variable.
(pager_start_workers): Added out parameter for the requests instance.
Allocate heap space shared by both queues. Initialise new inhibit_wakeup
condition.
(pager_inhibit_workers,pager_resume_workers): New functions.
* libpager/pager.h (struct pager_requests): Public forward definition.
(pager_start_workers): Added out parameter for the requests instance.
(pager_inhibit_workers,pager_resume_workers): New functions.
* libpager/queue.h (queue_empty): New function.
* storeio/pager.c (pager_requests): New variable.
(init_dev_paging): Updated call to pager_start_workers to use new
pager_requests variable.
</content>
</entry>
<entry>
<title>console: fix error and notification port handling</title>
<updated>2015-01-20T19:30:29Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2015-01-20T19:01:43Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=508221b49ae825501882e228b18e4586e59e88b0'/>
<id>urn:sha1:508221b49ae825501882e228b18e4586e59e88b0</id>
<content type='text'>
This fixes a deallocation of an invalid port notably seen on system
shutdown.

* console/display.c (free_modreqs): Handle errors of
`mach_port_request_notification' and check whether the old
notification port was valid.
(do_mach_notify_msg_accepted): Likewise.
(display_notice_filechange): Likewise.
</content>
</entry>
<entry>
<title>console: Fix typos in comments</title>
<updated>2015-01-03T12:09:47Z</updated>
<author>
<name>Stefan Weil</name>
<email>sw@weilnetz.de</email>
</author>
<published>2015-01-03T09:16:08Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=695e606f7fd8940c2b260670a89ae2a6cc82b9f4'/>
<id>urn:sha1:695e606f7fd8940c2b260670a89ae2a6cc82b9f4</id>
<content type='text'>
Signed-off-by: Stefan Weil &lt;sw@weilnetz.de&gt;
</content>
</entry>
<entry>
<title>console: add a payload-aware intrans function</title>
<updated>2014-12-07T14:38:18Z</updated>
<author>
<name>Justus Winter</name>
<email>4winter@informatik.uni-hamburg.de</email>
</author>
<published>2013-11-28T09:40:56Z</published>
<link rel='alternate' type='text/html' href='https://darnassus.sceen.net/cgit/teythoon/hurd.git/commit/?id=4191267e600e4ff1d54cf42baa2b3a0c9a842844'/>
<id>urn:sha1:4191267e600e4ff1d54cf42baa2b3a0c9a842844</id>
<content type='text'>
* console/priv.h (begin_using_protid_payload): New function.
* console/mutations.h: Add mutators.
</content>
</entry>
</feed>
