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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
[[!meta copyright="Copyright © 2010, 2011 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_documentation open_issue_hurd]]
We would expect that fine-grained, compartmentalized systems, that is,
microkernel-based multi-server systems in particular, would be ideal candidates
for applying multiprocessing. That is, however, only true from a first and
inexperienced point of view: there are many difficulties.
IRC, freenode, #hurd, August / September 2010
<marcusb> silver_hook: because multi-server systems depend on inter-process
communication, and inter-process communication is many times more
expensive across cpus
<marcusb> silver_hook: so you either force interrelated work on the same
cpu, or suffer heavy penalties. and in a typical fine-grained object
system, all objects are interconnected!
<marcusb> silver_hook: resources in today's systems, even in a single node
with one cpu, but more so in a network, are very non-uniform. scheduling
these resources efficiently is a huge problem. restricting the resource
distribution policies in the way microkernel systems tend to do is posing
serious research challenges
IRC, freenode, #hurd, 2011-07-26
< braunr> 12:03 < CTKArcher> and does the hurd take more advantages in a
multicore architecture than linux ?
< braunr> CTKArcher: short answer: no
< CTKArcher> it's easier to imagine one server pro core than the linux
kernel divided to be executed on multiple cores
< braunr> CTKArcher: this approach is less efficient
< braunr> CTKArcher: threads carry state, both explicit and implicit (like
cache data)
< braunr> CTKArcher: switching to another core means resetting and
refetching this state
< braunr> it's expensive and there is no gain obtained by doing this
< braunr> thread migration (having a thread from a client also run in
servers when making synchronous RPC, even handling its own page faults)
was implemented in mach4 and is imo a very good thing we should have
< braunr> CTKArcher: and concerning linux, it's actually very scalable
< braunr> it's already like if all client threads run in servers (the
kernel is the servers there)
< braunr> rcu is used a lot
< braunr> thread migration already takes into account smt, cores, and numa
< braunr> it's hard to do something better
< braunr> (here, thread migration means being dispatched on another cpu)
< braunr> some systems like dragonflybsd go as far as to pin threads on one
processor for their entire lifetime
< braunr> in order to have rcu-like locking almost everywhere
< braunr> (you could argue it's less efficient since in the worst case
everything runs on the same cpu, but it's very unlikely, and in practice
most patterns are well balanced)
debian-hurd list
On Thu, Jan 02, 2003 at 05:40:00PM -0800, Thomas Bushnell, BSG wrote:
> Georg Lehner writes:
>
> > - One promise of the microkernel architecture is better performance on
> > multiprocessor systems, or multicomputer systems. What is the status
> > of Gnu Mach with respect to these.
>
> This may or may not be true. The Hurd is built around a microkernel
> architecture because of its conceptual elegance and flexibility.
> Other touted advantages may be more illusory than real, at least, they
> aren't something *we* are proclaiming is our motivation.
---
See also: [[multithreading]].
|