On Wed, 2008-04-09 at 02:05 +0200, Henrik Nordstrom wrote:
> tis 2008-04-08 klockan 17:55 -0600 skrev Alex Rousskov:
> > is worth the bugs and complexity we are _removing_. Also, the future SMP
> > support may operate within the same nothing-is-immediate problem space.
> > In other words, let's get used to it! :-)
> 
> Note: For SMP to work out you want as few hops between CPUs per
> transaction. Moving data from one CPU to the other is quite costly,
> effectively stalling the other CPU.  To perform you want the CPUs to
> process unrelated transactions in parallel. The fewer things the CPUs
> has to say to each other the better. Additionally shared locks is the
> worst case of this as they stall every CPU in the system to synchronize
> the state..

Yes, but that is about what async jobs you place where and what jobs you
tell them to communicate with. The job code should not change whether it
is talking to another job on the same or different CPU. Thus, every
async bug we squash now will not bite us when we start allocating jobs
to CPUs and threads.

There is also a question on how to preserve call order or, more
precisely, how to draw the boundaries where the call order is preserved.
This is something the current async code does not expose us to because
there is only one async call queue. That is a different topic
though :-).

Alex.


Reply via email to