Re: Bug#47896: MS_SYNC Macros Missing from Hurd development environment

2007-06-08 Thread Samuel Thibault
Hi,

Aurelien Jarno, le Sat 18 Feb 2006 23:32:50 +0100, a écrit :
> It seems the msync() function has been implemented on Hurd since the 
> bug has been reported, at least there is now a sysdeps/mach/msync.c 
> file which seems to do something.

The macro MS_SYNC has been added and some code has been added, but
that's not for GNU Mach (since it doesn't define VM_SYNC_SYNCHRONOUS),
so it's half-fixed: programs can compile, but they'll always get ENOSYS.

Samuel


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: Bug#79358: is select still broken on hurd ?

2007-06-08 Thread Samuel Thibault
Hi,

(summary for the recall)
> things like select(1,[0],[],[],[0,0..999]) always return 0 immediately

About the 0..999 range, it's just that the timeout value is divided (and
rounded down) by 1000.

Now, we have a pile of issues: in gnumach's ipc_mqueue_receive(), if
time_out is zero, the function returns MACH_RCV_TIMED_OUT even if a
message is ready.  But anyway, since by design select() on the Hurd is
not necessarily synchronous (since it implies querying a server), the
reply can't be ready so fast.

Actually, on the Hurd, a timeout of 0 probably doesn't make sense (since
we at least need to give back cpu to the server). What I'd propose is
the attached patch (not tested), that rounds up the timeout value, and
in the case of 0, uses 1 (so as to give the server an opportunity to
answer).

Comments?

Samuel
Index: hurd/hurdselect.c
===
RCS file: /cvs/glibc/libc/hurd/hurdselect.c,v
retrieving revision 1.6
diff -u -p -r1.6 hurdselect.c
--- hurd/hurdselect.c   2 Apr 2002 04:41:45 -   1.6
+++ hurd/hurdselect.c   8 Jun 2007 17:27:45 -
@@ -50,10 +50,7 @@ _hurd_select (int nfds,
   error_t err;
   fd_set rfds, wfds, xfds;
   int firstfd, lastfd;
-  mach_msg_timeout_t to = (timeout != NULL ?
-  (timeout->tv_sec * 1000 +
-   timeout->tv_nsec / 100) :
-  0);
+  mach_msg_timeout_t to;
   struct
 {
   struct hurd_userlink ulink;
@@ -75,6 +72,15 @@ _hurd_select (int nfds,
   if (sigmask && __sigprocmask (SIG_SETMASK, sigmask, &oset))
 return -1;
 
+  if (timeout == NULL)
+to = 0;
+  else
+{
+  to = timeout->tv_sec * 1000 + (timeout->tv_nsec + 99) / 100;
+  if (!to)
+   to = 1;
+}
+
   if (pollfds)
 {
   /* Collect interesting descriptors from the user's `pollfd' array.


Processed: closing 38658

2007-06-08 Thread Debian Bug Tracking System
Processing commands for [EMAIL PROTECTED]:

> # Automatically generated email from bts, devscripts version 2.10.4
> close 38658
Bug#38658: hurd: keyboard layout configuration
'close' is deprecated; see http://www.debian.org/Bugs/Developer#closing.
Bug closed, send any further explanations to <[EMAIL PROTECTED]>

>
End of message, stopping processing here.

Please contact me if you need assistance.

Debian bug tracking system administrator
(administrator, Debian Bugs database)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Processed: closing 144545

2007-06-08 Thread Debian Bug Tracking System
Processing commands for [EMAIL PROTECTED]:

> # Automatically generated email from bts, devscripts version 2.10.4
> close 144545
Bug#144545: hurd: init scripts don't fsck extra partitions
'close' is deprecated; see http://www.debian.org/Bugs/Developer#closing.
Bug closed, send any further explanations to Robert Millan <[EMAIL PROTECTED]>

>
End of message, stopping processing here.

Please contact me if you need assistance.

Debian bug tracking system administrator
(administrator, Debian Bugs database)


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



libgl1-mesa-glx

2007-06-08 Thread Samuel Thibault
Hi,

There is some issues with packages that depend on libgl1-mesa-glx |
libgl1: on the Hurd we only build libgl1-mesa-swx11 which provides
libgl1, but buildd isn't smart enough to install it. A solution would be
to ask maintainers to fix into libgl1-mesa-glx [!hurd-i386] |
libgl1-mesa-swx11 [hurd-i386] | libgl1 ?

In the meanwhile we may want to install libgl1-mesa-swx11 by hand on the
buildd, so that these packages will go fine.

Samuel


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]



Re: Bug#79358: is select still broken on hurd ?

2007-06-08 Thread Neal H. Walfield
At Sat, 9 Jun 2007 01:30:49 +0800,
Samuel Thibault <[EMAIL PROTECTED]> wrote:
> Actually, on the Hurd, a timeout of 0 probably doesn't make sense (since
> we at least need to give back cpu to the server). What I'd propose is
> the attached patch (not tested), that rounds up the timeout value, and
> in the case of 0, uses 1 (so as to give the server an opportunity to
> answer).
> 
> Comments?

The problem is quite suble.  Here is how SUS describes select:

  If none of the selected descriptors are ready for the requested
  operation, the pselect() or select() function shall block until at
  least one of the requested operations becomes ready, until the timeout
  occurs, or until interrupted by a signal. The timeout parameter
  controls how long the pselect() or select() function shall take before
  timing out. 

The theory is that we don't trust the server to honor the timeout: it
may be malicious and trick the client into waiting forever.  However,
there are enough ways in which we rely on the server for correct
operation that using the Mach timeout mechanism to preempt the server
doesn't bring any additional safety.  Instead, I think, we should pass
the timeout directly to the server and rely on it to honor the timeout
according to the specification.

Neal


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]