Re: Dropping NETIF_F_SG since no checksum feature.

From: David Miller
Date: Tue Oct 10 2006 - 22:16:06 EST


From: "Michael S. Tsirkin" <mst@xxxxxxxxxxxxxx>
Date: Wed, 11 Oct 2006 02:13:38 +0200

> Maybe I can patch linux to allow SG without checksum?
> Dave, maybe you could drop a hint or two on whether this is worthwhile
> and what are the issues that need addressing to make this work?
>
> I imagine it's not just the matter of changing net/core/dev.c :).

You can't, it's a quality of implementation issue. We sendfile()
pages directly out of the filesystem page cache without any
blocking of modifications to the page contents, and the only way
that works is if the card computes the checksum for us.

If we sendfile() a page directly, we must compute a correct checksum
no matter what the contents. We can't do this on the cpu before the
data hits the device because another thread of execution can go in and
modify the page contents which would invalidate the checksum and thus
invalidating the packet. We cannot allow this.

Blocking modifications is too expensive, so that's not an option
either.

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/