[Top][All Lists]

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

vDSO? (was: [SCM] Web pages branch, master, updated. 357bc0213f1d4049d6

From: Thomas Schwinge
Subject: vDSO? (was: [SCM] Web pages branch, master, updated. 357bc0213f1d4049d6ce0c80122987c760c5e506)
Date: Sun, 7 Apr 2013 01:21:51 +0200
User-agent: Notmuch/0.9-101-g81dad07 (http://notmuchmail.org) Emacs/23.4.1 (i486-pc-linux-gnu)


On Sat, 06 Apr 2013 23:13:53 +0000, Thomas Schwinge <thomas@schwinge.name> 
> commit e4ca7c575ff06479bb634cf64cd9abe36a25e3e8
> Author: Thomas Schwinge <thomas@codesourcery.com>
> Date:   Sun Apr 7 01:03:54 2013 +0200
>     open_issues/vdso: New.

What are your thoughts?

| Evaluate whether or not usage of vDSOs (virtual dynamically linked shared
| objects; [[!wikipedia vDSO]]) can be useful in a GNU Hurd system.
| Explanation and example for the Linux kernel: [Creating a vDSO: the Colonel's
| Other
| Matt Davis, 2012-02-06.  The *Resources* given are also worth reading.
| Basically, this is useful for exporting data from the kernel (generally, or
| given a process context ([[Unix]]), or task/thread context, and so on).
| On a GNU Hurd system, parts of the data that makes up a process context 
| actually live inside the kernel, but instead is directly held in glibc.  For
| example `sysdeps/mach/hurd/getpid.c:__getpid` does a mere `return _hurd_pid`.
| For this reason, vDSOs might not be as useful on GNU Hurd as they are with the
| Linux kernel.  Or, put another way, as GNU Hurd system doesn't have many
| [[system_call]]s, also there aren't many that could be replaced.
| Generally only *real* [[system_call]]s should be candidates for implementation
| with vDSO code, because otherwise that'd break the ([[RPC]]) system's inherent
| [[/virtualization]] capabilities.
| Having vDSO code might be useful for:
|   * `mach_*_self`: `mach_host_self`, `mach_task_self`, `mach_thread_self`?
|   * 
|     Every application can then use that via the regular
|     `gettimeofday`/`clock_gettime` and similar calls instead of using the
|     special [[hurd/libshouldbeinlibc]]'s `<maptime.h>` interface.
|     Can implement [[`clock_gettime` stuff|clock_gettime]] more easily that 
|     for example for nanosecond precision?
|     Now, the [[mapped-time_interface]] is virtualizable -- the question is
|     whether there is a way so that we can make a compromise here?


Attachment: pgp8sU2i5t_u2.pgp
Description: PGP signature

reply via email to

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