1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
[[!meta copyright="Copyright © 2012, 2013 Free Software Foundation, Inc."]]
[[!meta license="""[[!toggle id="license" text="GFDL 1.2+"]][[!toggleable
id="license" text="Permission is granted to copy, distribute and/or modify this
document under the terms of the GNU Free Documentation License, Version 1.2 or
any later version published by the Free Software Foundation; with no Invariant
Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license
is included in the section entitled [[GNU Free Documentation
License|/fdl]]."]]"""]]
[[!tag open_issue_gnumach]]
# IRC, freenode, #hurd, 2012-07-05
<pinotree> braunr: wrt to mach: it seems to me it ticks every 10ms or so,
it is true?
<braunr> yes
<braunr> and it's not preemptible
[[microkernel/mach/gnumach/preemption]].
<pinotree> braunr: that means a gnumach kernel currently has a maximum
uptime of almost 500 days
<braunr> pinotree: what do you mean ?
<pinotree> there's an int (or uint, i don't remember) variable that keeps
the tick count
<braunr> yes the tick variable should probably be a 64-bits type
<braunr> or a struct
<braunr> but the tick count should only be used for computation on "short"
delays
<braunr> and it should be safe to use it even when it overflows
<braunr> it's not the wall clock
<pinotree> i found that when investigating why the maximum timeout for a
mach_msg is like INT_MAX >> 2 (or 4) or something like that, also due to
the tick count
<braunr> iirc, in linux, they mostly use the lower 32-bits on 32-bits
architecture, updating the 32 upper only when necessary
|