All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Jeff V. Merkey" <jmerkey@vger.timpanogas.org>
To: Alan Cox <alan@lxorguk.ukuu.org.uk>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Gigabit Performance 2.4.19-preX - Excessive locks, calls, waits
Date: Mon, 4 Mar 2002 14:02:44 -0700	[thread overview]
Message-ID: <20020304140244.A32644@vger.timpanogas.org> (raw)
In-Reply-To: <20020304104609.C31523@vger.timpanogas.org> <E16hxI9-00008m-00@the-village.bc.nu>
In-Reply-To: <E16hxI9-00008m-00@the-village.bc.nu>; from alan@lxorguk.ukuu.org.uk on Mon, Mar 04, 2002 at 06:34:33PM +0000

On Mon, Mar 04, 2002 at 06:34:33PM +0000, Alan Cox wrote:
> > > Thats up to the network adapter. In fact the Linux drivers mostly do 
> > > keep preloaded with full sized buffers and only copy if the packet size
> > > is small (and copying 1 or 2 cache lines isnt going to hurt anyone)
> > 
> > There's an increase in latency.  For my application, I have no 
> 
> A very tiny one (especially if you keep a small buffer pool around too).
> To copy a packet is 2 cache line loads, which will dominate, some
> writes that you wont be able to measure, and a writeback you won't be
> able to instrument without a bus analyser.
> 
> For receive paths its up to the driver. The copy to smaller buffer is
> something the driver can choose to do. It and it alone decide what skbuff
> to throw at the kernel core
> 
> The bigger ring helping is interesting but itself begs a question. Do you
> ever dirty rather than merely reference skbuff data. In that case a bigger

Actually, I am plugging in my own data blocks into the skbuff->data
pointer from the drivers themselves.  When the driver allocates an 
skbuff, I use an alternate cache allocator to load the buffer 
into the skbuff, and I leave the two attached.  skb_release_data does
not release one of my data blocks.  These blocks are 4K aligned so 
I am not in the middle of a cache line (I think) in the data portion
when DMA is initiated.

> ring may simply be hiding the fact that the recycled skbuff has dirty
> cached data that has to be written back. Does the combination of hardware

This is probably happening.  I have an Arium here now, and am hooking
it up.  I can get memory bus traces and provide what's actually 
happening on the bus.  I do not ever DMA into a partial cache line.

Jeff

> you have do the right thing when it comes to the invalidating  - and do
> you ever DMA into a partial cache line ?

> 
> Alan

  reply	other threads:[~2002-03-04 20:48 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-03-04  7:12 Gigabit Performance 2.4.19-preX - Excessive locks, calls, waits Jeff V. Merkey
2002-03-04  8:16 ` Andrew Morton
2002-03-04 15:04 ` Alan Cox
2002-03-04 17:46   ` Jeff V. Merkey
2002-03-04 18:34     ` Alan Cox
2002-03-04 21:02       ` Jeff V. Merkey [this message]
2002-03-04 17:39 ` Martin Josefsson
2002-03-04 18:04   ` Jeff V. Merkey
     [not found] <20020304001223.A29448@vger.timpanogas.org.suse.lists.linux.kernel>
2002-03-04  8:28 ` Andi Kleen
2002-03-04 17:41   ` Jeff V. Merkey

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=20020304140244.A32644@vger.timpanogas.org \
    --to=jmerkey@vger.timpanogas.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=linux-kernel@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.