From: Pavel Machek <pavel@ucw.cz>
To: "Ed L. Cashin" <ecashin@coraid.com>
Cc: kernel list <linux-kernel@vger.kernel.org>,
ak@suse.de, Netdev list <netdev@vger.kernel.org>
Subject: Re: ATA over ethernet swapping
Date: Wed, 1 Aug 2007 00:27:42 +0200 [thread overview]
Message-ID: <20070731222742.GR2087@elf.ucw.cz> (raw)
In-Reply-To: <20070731162140.GI3206@coraid.com>
Hi!
> ...
> > Is the protocol documented somewhere? aoe.txt only points at
> > HOWTO... aha, protocol is linked from wikipedia.
> > http://www.coraid.com/documents/AoEr10.txt ... perhaps that should be
> > linked from aoe.txt, too?
>
> Perhaps. Most people reading the aoe.txt file won't need to refer to
> the protocol itself, though.
Some of your users are developers, too :-). Should I generate a patch?
> > Hmm, aoe protocol is really trivial. Perhaps netpoll/netconsole
> > infrastructure could be used to create driver good enough for
> > swapping? (Ok, it would not neccessarily perform too well, but... we'd
> > simply wait for the reply synchronously. It should be pretty simple).
>
> I think that in general you still need a way to receive write
> confirmations without allocating memory, and the driver can't provide
> that mechanism. The problem is that when memory is scarce, writes of
> dirty data must be able to complete, but because memory is scarce,
> there might not be enough to receive and process packets write-reponse
> packets, and the driver has no way of affecting the situation. That's
> why I think a callback could work: The network layer could allow
> storage drivers to register a callback that recognizes write
> responses.
Hmm, ok, it is not as simple as I thought. include/linux/netpoll.h
already includes mechanism to notify interested parties really soon,
but drivers still call dev_alloc_skb() before that.
> Usually the callback would not be used, but if free pages became so
> scarce that network receives could not take place in a normal fashion,
> the (zero or few) registered callbacks would be used to quickly
> determine whether each packet was a write response. The distinction
> is important, because write responses can result in the freeing of
> pages.
Hmm, adding GFP_GIVE_ME_EMERGENCY_POOLS to dev_alloc_skb(), then doing
...
int netif_rx(struct sk_buff *skb)
{
struct softnet_data *queue;
unsigned long flags;
/* if netpoll wants it, pretend we never saw it */
if (netpoll_rx(skb))
return NET_RX_DROP;
if (memory_is_still_very_low())
return NET_RX_DROP;
...should do the trick. Would something like that be acceptable to
network people?
Pavel
--
(english) http://www.livejournal.com/~pavelmachek
(cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html
next prev parent reply other threads:[~2007-07-31 22:28 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-07-31 13:58 ATA over ethernet swapping and obfuscated code Pavel Machek
2007-07-31 14:46 ` Sébastien Dugué
2007-07-31 15:03 ` Ed L. Cashin
2007-07-31 15:29 ` Pavel Machek
2007-07-31 16:21 ` Ed L. Cashin
2007-07-31 22:27 ` Pavel Machek [this message]
2007-08-01 9:18 ` ATA over ethernet swapping Peter Zijlstra
2007-08-09 10:11 ` Pavel Machek
2007-08-13 7:45 ` Peter Zijlstra
2007-08-21 7:42 ` Pavel Machek
2007-08-03 12:13 ` ATA over ethernet swapping and obfuscated code Torsten Kaiser
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=20070731222742.GR2087@elf.ucw.cz \
--to=pavel@ucw.cz \
--cc=ak@suse.de \
--cc=ecashin@coraid.com \
--cc=linux-kernel@vger.kernel.org \
--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
Powered by JetHome