netdev.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Johann Baudy <johann.baudy@gnu-log.net>
To: Christoph Lameter <cl@linux.com>
Cc: netdev@vger.kernel.org
Subject: Re: [PATCH] TX_RING and packet mmap
Date: Tue, 21 Apr 2009 22:13:35 +0200	[thread overview]
Message-ID: <7e0dd21a0904211313p73143cc8t51b5c537c5edfb05@mail.gmail.com> (raw)
In-Reply-To: <alpine.DEB.1.10.0904211131340.21796@qirst.com>

Hi Christoph,

> Could you clean then states up a bit to reflect what they actually mean?
>
> TP_STATUS_AVAILABLE             => Frame is available
> TP_STATUS_SEND_REQUEST          => Frame waits for sending
> TP_STATUS_SENDING               => Frame is being sent.

Ok

> Also can you ensure that send() continues to send if I concurrently set
> the status to TP_STATUS_SEND_REQUEST from another thread? How it is
> serialized anyways? Status is an atomic value? Or do you rely on status
> only being modified while send() is running?

TP_STATUS_KERNEL => TP_STATUS_SEND_REQUEST: only performed by user.
TP_STATUS_SEND_REQUEST => TP_STATUS_SENDING  only performed by kernel
TP_STATUS_SENDING => TP_STATUS_KERNEL  only performed by kernel.

Only one thread is allowed to change status values from user space.
This way, you can take advantage of smp. One thread is filling the
buffer changing status  from TP_STATUS_KERNEL to
TP_STATUS_SEND_REQUEST , another is calling send() in loop
(MSG_DONTBLOCK option can be used).

You can also perform filling and send() sequentially

An example can be found at:
http://wiki.gnu-log.net/index.php5?title=Linux_packet_mmap
It can customize almost all parameters, use multi_thread, use DGRAM ...

Thanks,
Johann

  reply	other threads:[~2009-04-21 20:13 UTC|newest]

Thread overview: 49+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2009-04-02 19:48 [PATCH] TX_RING and packet mmap Johann Baudy
2009-04-07  7:26 ` Herbert Xu
2009-04-07 12:48   ` jamal
2009-04-07 13:04     ` Herbert Xu
2009-04-07 13:47       ` jamal
2009-04-07 14:17         ` Herbert Xu
2009-04-07 14:40         ` Johann Baudy
     [not found]         ` <7e0dd21a0904070738jd8a2714wd840352699f1e9f1@mail.gmail.com>
2009-04-07 20:56           ` jamal
2009-04-07 21:11             ` Evgeniy Polyakov
2009-04-08 21:06               ` Johann Baudy
2009-04-12 10:27                 ` Johann Baudy
2009-04-12 10:32                   ` Evgeniy Polyakov
2009-04-12 11:23                     ` Johann Baudy
2009-04-12 14:24                       ` Evgeniy Polyakov
2009-04-12 19:27                         ` Johann Baudy
2009-04-12 19:52                           ` Evgeniy Polyakov
2009-04-12 20:30                             ` Johann Baudy
2009-04-12 20:53                               ` Evgeniy Polyakov
2009-04-12 23:31                                 ` Johann Baudy
2009-04-15  7:10                                   ` Evgeniy Polyakov
2009-04-15 13:14                                     ` Johann Baudy
2009-04-16 11:16                                       ` Evgeniy Polyakov
2009-04-18 21:38                                         ` Johann Baudy
2009-04-21  9:41                                           ` Evgeniy Polyakov
2009-04-21 13:16                                             ` Johann Baudy
2009-04-21 13:56                                               ` Evgeniy Polyakov
2009-04-08  6:51           ` Herbert Xu
2009-04-21 15:36 ` Christoph Lameter
2009-04-21 20:13   ` Johann Baudy [this message]
2009-04-21 20:42     ` Christoph Lameter
2009-04-21 21:00       ` Johann Baudy
2009-04-21 21:00         ` Christoph Lameter
2009-04-21 21:13           ` Johann Baudy
2009-04-21 20:46     ` Johann Baudy
2009-04-21 20:43       ` Christoph Lameter
2009-04-21 21:05         ` Johann Baudy
2009-04-21 21:08           ` Christoph Lameter
  -- strict thread matches above, loose matches on Subject: below --
2009-04-26 13:06 Johann Baudy
2009-04-29  9:18 ` Evgeniy Polyakov
2009-04-30 20:17   ` Johann Baudy
2009-05-05 21:38 Johann Baudy
2009-05-06  7:07 ` Jarek Poplawski
2009-05-06  9:38   ` Jarek Poplawski
2009-05-09 20:31 ` David Miller
2009-05-11 21:21 Johann Baudy
2009-05-12 16:11 ` Andi Kleen
     [not found]   ` <7e0dd21a0905121058m1f894de6q9805e5392aef3aea@mail.gmail.com>
2009-05-12 18:00     ` Johann Baudy
     [not found]     ` <7e0dd21a0905121058m1f894de6q9805e5392aef3aea-JsoAwUIsXosN+BqQ9rBEUg@public.gmane.org>
2009-05-12 18:15       ` Andi Kleen
2009-05-19  5:12 ` David Miller

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=7e0dd21a0904211313p73143cc8t51b5c537c5edfb05@mail.gmail.com \
    --to=johann.baudy@gnu-log.net \
    --cc=cl@linux.com \
    --cc=netdev@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).