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

Re: dispatch tcp_close to the correct CPU to run


From: "Sepherosa Ziehau" <sepherosa@xxxxxxxxx>
Date: Thu, 7 Feb 2008 11:28:36 +0800

On Feb 7, 2008 2:11 AM, Matthew Dillon <dillon@apollo.backplane.com> wrote:
>
> :Hi all,
> :
> :In tcp_timer_2msl() we need to dispatch tcp_close() to the correct CPU
> :instead of calling it directly:
> :http://leaf.dragonflybsd.org/~sephe/tcp_timer.c.diff
> :
> :Best Regards,
> :sephe
>
>     It should already be on the correct cpu since the callout API is
>     all cpu localized.  The only other entry point is via the pru_*
>     dispatch but I'm pretty sure that is cpu localized via
>     kern/uipc_msg.c.
>
>     If you haven't already, I recommend we assert that it is on the
>     correct cpu rather then route it to the correct cpu (which it
>     should already be on).

If I added code in tcp_timer_before tcp_close() to printf mycpuid and
tp->tt_cpu, I got 1 for mycpuid and 0 for tp->tt_cpu.

>
>     However, even though it will be on the correct cpu there could be
>     a threading issue... it won't be in the same thread as the tcp
>     protocol thread.  The threads are not preemptive but the could
>     still be a problem.

Umm, yeah.

Best Regards,
sephe

-- 
Live Free or Die



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