DragonFly BSD
DragonFly users List (threaded) for 2005-02
[Date Prev][Date Next]  [Thread Prev][Thread Next]  [Date Index][Thread Index]

Re: em driver - issue #2

From: EM1897@xxxxxxx
Date: Mon, 7 Feb 2005 14:35:29 EST

In a message dated 2/7/05 2:17:41 PM Eastern Standard Time, 
joerg@xxxxxxxxxxxxxxxxx writes:

>Yes, it is something we have to fix. But it is a bit complicated to do
>without breaking the whole abstraction. We don't want to have a global
>counter for unprocessed packages, because we could use mutexes in that
>case directly. Maybe an option to switch to DEVICE_POLLING under very
>high load combined with SMP save DEVICE_POLLING.

Device polling is really not an option. Having a system go into livelock for 
a few seconds now and then is preferable to having it dump buckets of
packets as it does with device polling. A better solution for me would be
to change the m_getcl() to MB_WAIT. Its no more a hack to the system 
than having to increase HZ and introduce polling latencies. 

>> Joerge, I don't see where the em driver checks for descriptors that don't 
>> buffers allocated, as would happen when one couldn't be replenished at 
>> time. Is it completely broken in terms of handling this situation?

>It seems quite broken in that case. I think we have two possiblities.
>First as short term fix, just keep the mbuf loaded and count the
>packet as droped. Second, get the docu and fix it correctly.

Or add a cleanup routine that checks the ring when an event flag is
set. I don't think you'd need the docs to do that. It could be done in
the timer interrupt, or checked at each interrupt....

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