Re: What happened to computer architecture (and comp.arch?)



In article <m3r5ti3oft.fsf@xxxxxxxxxxxxxxx>,
Benny Amorsen <benny+usenet@xxxxxxxxxx> wrote:
Morten Reistad <first@xxxxxxxxx> writes:

The applications are coded using all three main apis, select(),
poll() and monster numbers of synchronous threads. They behave
equally well, differences are too small to be significant.

I am a little bit surprised that they behave equally well. Asterisk (the
only one I have looked at) seems to make an extra system call per packet
according to strace, and I would have expected that to have an impact.

Asterisk actually performs best. But the user mode code represents
less than 1/20th of the cpu time expended, so user mode optimisations
will not have much impact.

As I said in an earlier posting, 1/20th is used in user mode,
1/10th in task switching, 1/4th in interrupt code (800 megabit
two way in small pakcet mode) and the remaining 2/3 inside the
Linux kernel.

I am working on a kernel driver for this substitution, so I
can put it directly in the routing code, and avoid all the
excursions into user mode.

It seems like the splice system call ought to be able to do this, but I
don't think it works for UDP, and it probably isn't good for small
payloads like this. Conceptually it seems like the right path...

The bottleneck here isn't in user mode code at all. That was why
we tried FreeBSD as a test. If was not much different. Somewhat
tighter code and somewhat coarser locks, but not that big a
difference.

-- mrr
.



Relevant Pages

  • RE: Interrupt Handling
    ... but then somehow it would notify user mode code. ... it can only queue a dpc routine. ... You can do all of this, and of course you can turn interrupts off on ...
    (microsoft.public.development.device.drivers)
  • Re: KSPROPERTY_TYPE_SET cannot return data??
    ... I've never done set-modify-return on the user mode side, ... item and your user mode code. ... Just design your data structure accordingly. ... Is there some flag I am missing on my UM call (this part I do not have ...
    (microsoft.public.development.device.drivers)
  • Re: MmMapIoSpace for applications in CE 6.0?
    ... No one ever said there was no way for user mode code to access physical memory. ... The important distinction here is that the user mode code cannot create mappings of arbitrary physical addresses into user mode space. ... DDRAW is part of GWES and thus part of the kernel, so it CAN create mappings to a given process on behalf of the user mode code that it's working with. ...
    (microsoft.public.windowsce.platbuilder)
  • Re: MmMapIoSpace for applications in CE 6.0?
    ... is not clear how things like DDRAW will be functioning ... if there is no way to access the phys memory from the ... No one ever said there was no way for user mode code to access physical ...
    (microsoft.public.windowsce.platbuilder)