On lun, déc 03, 2001 at 07:40:00 +0200, Julian Anastasov wrote:
> When hunting for bugs in IPVS it is really recommended
> to use the compiled in version of IPVS, it is more difficult to
> find bugs in modules.
OK. Sorry, I thought ipvs could run only as a module. Good job :) !
> But it seems __SMP__ is for 2.2 only, my mistake (I recently
> compiled eth drivers for 2.2 ...).
Mmh... yes, I think you're right, I clearly remember some
#if defined(__SMP__) || defined(LINUX_2_4)
in the kernel. Quite strange indeed...
> > > - locking in user space does not use _bh functions and the current
> > > user context is interrupted from the same CPU between lock and unlock
> > > But in the case with mod_sltimer I don't see how user space will deal
> > > with connection states. But there should be something we miss.
> > OK, that's a good point. In fact, I am using an extension over IPVS that
> > provides a userland queing, adapted from netfilter's userland queuing. I
> Ops. It is still not clear to me, is the plain IPVS with
> problems near mod_sltimer? Or only with the patched IPVS?
The patched one. I cannot do my test with the plain IPVS.
> The networking code avoids disabling the hardware IRQs. You
> should be aware of interrupting the user space from softirq/bh (on the
> same CPU). sltimer_handler is started from the timer bh.
OK... I think, we're touching a beginning of a solution. I replaced all the
'write_(un)lock' stuff with 'write_(un)lock_bh'... and it seems to be much
better ! I'll let a test run over the night and I tell you.
> IPVS 0.9.7 has more places where your patch can fail. We
> recently added many optimizations ready for receiving fragmented packets,
> once the kernel feed us with them. You have to be very careful.
Fine... i'll see what I can do.
Regards,
--
=========================================================
Lionel Bringuier - lb_at_fr.netcentrex.net
Team Leader - Linux Applications Development
Phone : +33 (0)2 31 46 35 70 - http://www.netcentrex.net
|