Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 06 Nov 2012 12:42:53 +0100
From:      Andre Oppermann <andre@freebsd.org>
To:        Fabien Thomas <fabien.thomas@netasq.com>
Cc:        Davide Italiano <davide@freebsd.org>, Luigi Rizzo <rizzo@iet.unipi.it>, Joe Holden <lists@rewt.org.uk>, Ryan Stone <rysto32@gmail.com>, FreeBSD Current <current@freebsd.org>
Subject:   Re: polling's future [was: Re: Dynamic Ticks/HZ]
Message-ID:  <5098F7BD.9060204@freebsd.org>
In-Reply-To: <04A8DD03-71B2-4EFA-864B-522F49BF1478@netasq.com>
References:  <509758B8.1000409@rewt.org.uk> <CACYV=-HwJ1j2-zDtCtuGNKzdFRJhPsZm6vtFXAVyPSabCXvFEQ@mail.gmail.com> <50975F6F.6010907@rewt.org.uk> <CACYV=-Ef5ij7%2BgqDV9oS3xRyD6Yy2mqDyKqqUZZQ-KsWb_3C3A@mail.gmail.com> <5097898C.9080109@rewt.org.uk> <CAFMmRNwR_XxjnRZvxqew77qNnOTGWrRQnhJkg4u2berL8VCVtw@mail.gmail.com> <20121105163654.GA12870@onelab2.iet.unipi.it> <5097E880.8010001@rewt.org.uk> <20121105165748.GA13098@onelab2.iet.unipi.it> <5098E526.6070101@freebsd.org> <04A8DD03-71B2-4EFA-864B-522F49BF1478@netasq.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 06.11.2012 12:02, Fabien Thomas wrote:
>>>
>>
>> Hi Luigi,
>>
>> do you agree on polling having outlived its usefulness in the light
>> of interrupt moderating NIC's and SMP complications/disadvantages?
>>
> If you have only one interface yes polling is not really necessary.
>
> If you have 10 interfaces the interrupt moderation threshold is hard to find
> to not saturate the system.
> Doing polling at 8000hz in that case is a lot better regarding global interrupt level.

OK.  Is the problem the interrupt load itself, or the taskqueues?

> The problem is that in the current state polling does not work well and people remember
> the good old time where polling was better.

Indeed.

> rstone@ and myself have made some improvement to polling.
>
> You can find a diff here for 8.3 with updated intel driver :
> http://people.freebsd.org/~fabient/polling/patch-pollif_8.3_11052012
>
> - support multiqueue for ixgbe, igb, em.
> - compat API for old driver
> - keep interrupt for link / status
> - user core mapping / auto mapping
> - deadline to keep cpu available
> - integrated to netisr
> - deferred packet injection with optional prefetching

This is a number of interesting but sometimes only tangentially
related features.  Lets focus on the network cpu monopolization
issue first.

> Performance are on par with interrupt but you can keep a system alive more easily
> by accounting all network processing for the deadline (with direct dispatch).

Would you be willing to work a solution with me with a load aware
taskqueue as I proposed in a recent email to Luigi?  That way we
don't need special cases or features or even a normal server under
DDoS wouldn't go down.

-- 
Andre




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?5098F7BD.9060204>