Re: [PATCH RT] ehea: make receive irq handler non-threaded (IRQF_NODELAY)

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Jan-Bernd Themann
Date: Thursday, May 20, 2010 - 2:05 am

Hi Thomas

rx

Is this the same interrupt we are seeing here, or do we see a second other
interrupt popping up on the same CPU? As I said, with multiple receive
queues
(if enabled) you can have multiple interrupts in parallel.

Pleaes check if multiple queues are enabled. The following module parameter
is used for that:

MODULE_PARM_DESC(use_mcs, " 0:NAPI, 1:Multiple receive queues, Default = 0
");

you should also see the number of used HEA interrupts in /proc/interrupts



If you mean the "re-enable" piece of code, it is not very obvious, you are
right.
Interrupts are only generated if a particular register for our completion
queues
is written. We do this in the following line:

          ehea_reset_cq_ep(pr->recv_cq);
          ehea_reset_cq_ep(pr->send_cq);
          ehea_reset_cq_n1(pr->recv_cq);
          ehea_reset_cq_n1(pr->send_cq);

So this is in a way an indirect way to ask for interrupts when new
completions were
written to memory. We don't really disable/enable interrupts on the HEA
chip itself.

I think there are some mechanisms build in the HEA chip that should prevent
that
interrupts don't get lost. But that is something that is / was completely
hidden from
us, so my skill is very limited there.

If more details are needed here we should involve the PHYP guys + eHEA HW
guys if not
already done. Did anyone already talk to them?

Regards,
Jan-Bernd

--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
Re: [PATCH RT] ehea: make receive irq handler non-threaded ..., Jan-Bernd Themann, (Thu May 20, 12:37 am)
Re: [PATCH RT] ehea: make receive irq handler non-threaded ..., Jan-Bernd Themann, (Thu May 20, 2:05 am)
Re: [PATCH RT] ehea: make receive irq handler non-threaded ..., Jan-Bernd Themann, (Mon Sep 20, 7:26 am)