DragonFly BSD
DragonFly kernel List (threaded) for 2006-09
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: Batch/At (if it wasn't broken, no worries I broke it :-) )


From: Matthew Dillon <dillon@xxxxxxxxxxxxxxxxxxxx>
Date: Tue, 5 Sep 2006 10:06:45 -0700 (PDT)

    And just as a side note... procedure call overhead on a modern cpu can
    be as little as 0 cpu cycles for small procedures, and typically do not
    cost more then 5 nanoseconds in any case.  This is because procedure calls
    use the same hardware branch prediction cache that conditionals use,
    procedural returns use a special hardware call-return stack, and stack
    memory for arguments is virtually guarenteed to be in the cpu L1 cache
    or, even better, the arguments are likely still in the memory write
    pipe and can be directly picked up by the instruction pipeline.

    In the DragonFly kernel we only inline the tiniest, most heavily-used
    critical path routines, though there are still a lot of 'old' inlines
    inherited from FreeBSD that have not yet been unwound (the most aggregious
    being in the NFS code and containing out-of-band goto's).

						-Matt



[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]