DPC has high latency only with SMP

Discussion in 'Windows Vista Drivers' started by ernie, Aug 17, 2004.

  1. ernie

    ernie Guest

    Hallo,
    i'm back with my DPC latency problem: i'm testing my driver on an SMP
    machine, and 4 or 5 times every second when in the isr i request the
    dpc, i find that the old request is still in queue.
    When I start the OS with the /onecpu option, this behaviour disappears
    and the DPC is never delayed too much (>1ms).
    Does anyone have some clue for solving this problem ?
    I don't understand why the dpc handling seems to slow down so much on a
    SMP machine.

    Thanks,

    e.
     
    ernie, Aug 17, 2004
    #1
    1. Advertisements

  2. ernie

    ernie Guest

    I'm more and more puzzled: if I launch some CPU intensive application,
    the problem with the DPC longly waiting on queue disappears.
    Does anyone have some ideas on what could cause this behaviour ?
    Could HT be part of the problem ?

    Thanks,

    e.
     
    ernie, Aug 17, 2004
    #2
    1. Advertisements

  3. I did not watch any of your earlier threads. Any chance you have the
    wrong HAL installed (we had DELL machines here that came with the UP
    HAL installed on HT)? Or the HAL has a bug? Can you try a machine from
    a different vendor?

    Stephan
     
    Stephan Wolf [MVP], Aug 17, 2004
    #3
  4. ernie

    ernie Guest

    Hallo,
    thank you for your insights.
    I'm not setting any processor affinity, but I think I will try soon: in
    the system monitor I've noticed that when both the cpu's are 'free' the
    interrupts and the dpc are mostly queued on the cpu 0 (cpu 0 handles
    almost about 1000 dpc and interrupts per second, while the cpu 1 handles
    about 50 interrupts and dpcs per sec.), while when I run a cpu
    intensive application the load is a little better distributed (in terms
    of 2/3 on cpu0 and 1/3 on cpu1, HT is disabled at the moment since I
    wanted to restrict the variables number); thus I'm thinking of targeting
    the dpcs to the existing processors in round robin, just to see what
    happens.
    I'm not sure of what HAL I have, I've installed Win2003 from scratch on
    the dual processor with HT activated, so I hope it chose the correct
    one, anyway how can I check ?
    Another thing: HT doesn't seem to have influence on this behaviour: both
    with HT activated and deactivated I have some DPC sleeping on queue for
    more than 1ms until any of the CPUs has some heavy load.
    I'm setting up a dual processor from another vendor, to give it a try.
    Finally if it's a bugged HAL I think we're in troubles but again I
    really don't know how to verify.

    e.
     
    ernie, Aug 18, 2004
    #4
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.