linux-um archives
 help / color / mirror / Atom feed
From: BlaisorBlade <blaisorblade_spam@yahoo.it>
To: user-mode-linux-devel@lists.sourceforge.net
Cc: Andi Kleen <ak@suse.de>,
	Lars Ellenberg <Lars.Ellenberg@linbit.com>,
	lmb@suse.de
Subject: Re: [uml-devel] uml "ip header error" for large (fragmented) udp packets
Date: Thu, 7 Oct 2004 20:41:51 +0200	[thread overview]
Message-ID: <200410072041.51890.blaisorblade_spam@yahoo.it> (raw)
In-Reply-To: <20041006203539.GC22794@wotan.suse.de>

On Wednesday 06 October 2004 22:35, Andi Kleen wrote:
> On Wed, Oct 06, 2004 at 08:48:23PM +0200, Lars Ellenberg wrote:
> > > So this could help you for now, while we try to find a clue about this.
> > > Quite frankly, I must say that I'm not seeing any network kernel hacker
> > > here (correct me if I'm wrong), so it will take some time to debug it.
> > > Maybe Gerd Knorr is an exception, actually.

> > Well, then I take Andi Kleen and Lars Marowsky-Br?e into CC for now.
> > Lars, because I expect him to be interessted in having UML as full
> > featured cluster simulation tool available, and Andi because I hope he
> > might know the network code much better than me...

> > FYI, full thread can be found for example at
> > http://thread.gmane.org/gmane.linux.uml.devel/4607

> Paolo's analysis is basically correct. loopback sets this flag
> for better performance.  Actually in 2.6 it probably doesn't help
> very much anymore because TCP can do checksum copy RX now, and that
> would get the checksum basically for free. But it's still there
> and may still make things slightly faster.
First thing: thanks a lot for your quick answer.

My discussion about "lo" was slightly unrelated to the exact problem, and a 
bit confusing...

I was at first surprised from Ethereal complaining about the host kernel, so I 
thought I could have a buggy Ethereal, and then went checking that it's a 
Linux optimization, indeed.

> If UML taps the packets from lo it will see incorrect checksums.
> Using a tun or ethertap device would avoid this.

> In the worst 
> case you could also just delete the flag from the loopback
> interface, it's only an optimization.

No, inside the Uml kernel they go through a virtual "ethN" interface, which 
uses special code. That driver, in turn, will use either ethertap, or TAP (it 
sends Ethernet frames), or even other mechanism.

You can find it (in 2.6.9-rc2 at least) in arch/um/drivers/net_*.c and 
arch/um/os-Linux/drivers/*tap*.c. The code in *_kern.c files links against 
the kernel API and includes, *_user.c against the host userspace includes.

And the problem is, probably, that the UML network drivers never declare their 
checksumming status, as I said in the previous mail:

[quote]
include/linux/skbuff.h describes the Checksum flags, and UML does not use 
them: these two commands return no (relevant) output.

find arch/um/ -name '*.[ch]'|xargs grep NETIF
find arch/um/ -name '*.[ch]'|xargs grep CHECKSUM
[/quote]

And not even these ones:

find arch/um/ -name '*.[ch]'|xargs grep NETIF
find arch/um/ -name '*.[ch]'|xargs grep CHECKSUM

Also, it's possible that there are even other bugs...
-- 
Paolo Giarrusso, aka Blaisorblade
Linux registered user n. 292729


-------------------------------------------------------
This SF.net email is sponsored by: IT Product Guide on ITManagersJournal
Use IT products in your business? Tell us what you think of them. Give us
Your Opinions, Get Free ThinkGeek Gift Certificates! Click to find out more
http://productguide.itmanagersjournal.com/guidepromo.tmpl
_______________________________________________
User-mode-linux-devel mailing list
User-mode-linux-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/user-mode-linux-devel

  parent reply	other threads:[~2004-10-07 18:41 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-10-03  2:36 [uml-devel] uml "ip header error" for large (fragmented) udp packets Lars Ellenberg
2004-10-03 15:11 ` BlaisorBlade
2004-10-03 19:29   ` Lars Ellenberg
2004-10-04 11:07   ` Gerd Knorr
2004-10-04 11:56     ` Henrik Nordstrom
2004-10-06 17:50 ` BlaisorBlade
2004-10-06 18:48   ` Lars Ellenberg
2004-10-06 20:35     ` Andi Kleen
2004-10-06 21:48       ` Lars Ellenberg
2004-10-07 18:41         ` BlaisorBlade
2004-10-07 18:41       ` BlaisorBlade [this message]
2004-10-07 20:24         ` Lars Ellenberg
2004-10-11 17:55           ` Lars Ellenberg
2004-10-12  0:03             ` [uml-devel] SOLVED: " Lars Ellenberg
2004-10-12  0:11               ` Andi Kleen
2004-10-12  1:10                 ` BlaisorBlade
2004-10-12  1:53                   ` Michael Richardson
2004-10-15 15:25                   ` [uml-devel] larger MTU _does_ work Lars Ellenberg
2004-10-12  0:27               ` [uml-devel] SOLVED: uml "ip header error" for large (fragmented) udp packets BlaisorBlade
2004-10-12 14:00                 ` Lars Ellenberg

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=200410072041.51890.blaisorblade_spam@yahoo.it \
    --to=blaisorblade_spam@yahoo.it \
    --cc=Lars.Ellenberg@linbit.com \
    --cc=ak@suse.de \
    --cc=lmb@suse.de \
    --cc=user-mode-linux-devel@lists.sourceforge.net \
    /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