From: "David S. Miller" <davem@davemloft.net>
To: Pablo Neira <pablo@eurodev.net>
Cc: hadi@cyberus.ca, herbert@gondor.apana.org.au, davem@redhat.com,
netdev@oss.sgi.com
Subject: Re: [PATCH] Improve behaviour of Netlink Sockets
Date: Thu, 23 Sep 2004 12:16:51 -0700 [thread overview]
Message-ID: <20040923121651.51a58cf2.davem@davemloft.net> (raw)
In-Reply-To: <4152EE68.4030803@eurodev.net>
On Thu, 23 Sep 2004 17:40:24 +0200
Pablo Neira <pablo@eurodev.net> wrote:
> Initially we could allocate a skb with size NLMSG_GOODSIZE, then after
> all the information has been added, we could use a function (skb_*)
> which allocates a new buffer headroom, memcpy the old skb headroom and
> release it, so we trim the useless part of the headroom. This make us
> waste some extra jiffies with memcpy's but we could save same space in
> the queue. Does such skb_* function exist?
No such function exists.
Such a function would need to modify skb->truesize and that is
very dangerous. People using such a routine would need to be
_extremely_ careful since if the skb being worked on is on
a socket queue, changing skb->truesize is going to mess up
socket buffer accounting later when the skb gets freed
and the socket buffer space liberated.
That doesn't apply to what you're trying to do here, of course.
Simpler would be:
1) For each netlink socket, allocate a page, much like TCP sockets
do.
2) Construct the netlink response in this page sized buffer,
keeping track of how much of the page is actually used.
3) At the end, allocate the skb with the necessary length,
copy into the skb from the page buffer.
4) Since the RTNL semaphore is held during the length of these
operations, the per-socket page needs no locking.
next prev parent reply other threads:[~2004-09-23 19:16 UTC|newest]
Thread overview: 96+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <412DF807.2040703@eurodev.net>
[not found] ` <20040826141407.38b56729.davem@redhat.com>
[not found] ` <412EB40A.6010100@eurodev.net>
[not found] ` <20040826214710.5e322f1a.davem@redhat.com>
[not found] ` <412F1269.8090303@eurodev.net>
[not found] ` <20040827172736.543dbd54.davem@redhat.com>
2004-08-30 0:37 ` [PATCH] Improve behaviour of Netlink Sockets Pablo Neira
2004-08-31 0:20 ` David S. Miller
2004-08-31 16:37 ` Pablo Neira
2004-08-31 20:16 ` David S. Miller
2004-09-18 10:25 ` Herbert Xu
2004-09-19 4:36 ` Pablo Neira
2004-09-19 5:18 ` Pablo Neira
2004-09-19 7:58 ` Herbert Xu
2004-09-19 12:02 ` Herbert Xu
2004-09-19 12:07 ` Herbert Xu
2004-09-19 20:50 ` Pablo Neira
2004-09-19 21:53 ` Herbert Xu
2004-09-19 22:49 ` Pablo Neira
2004-09-19 23:44 ` Herbert Xu
2004-09-20 0:31 ` Pablo Neira
2004-09-20 1:00 ` Herbert Xu
2004-09-19 20:50 ` Pablo Neira
2004-09-19 21:59 ` Herbert Xu
2004-09-19 22:39 ` jamal
2004-09-19 22:55 ` Pablo Neira
2004-09-19 23:04 ` jamal
2004-09-19 23:10 ` Herbert Xu
2004-09-19 23:17 ` Herbert Xu
2004-09-20 2:39 ` jamal
2004-09-20 2:58 ` Herbert Xu
2004-09-20 12:34 ` jamal
2004-09-20 18:14 ` Pablo Neira
2004-09-20 21:59 ` Herbert Xu
2004-09-21 11:47 ` jamal
2004-09-21 12:09 ` Herbert Xu
2004-09-22 0:05 ` Herbert Xu
2004-09-22 0:24 ` Pablo Neira
2004-09-22 2:48 ` Pablo Neira
2004-09-22 2:50 ` David S. Miller
2004-09-22 2:53 ` jamal
2004-09-22 3:46 ` Herbert Xu
2004-09-22 11:35 ` jamal
2004-09-23 12:05 ` Herbert Xu
2004-09-24 2:56 ` jamal
2004-09-24 3:20 ` Herbert Xu
2004-09-27 12:41 ` jamal
2004-09-22 4:52 ` Herbert Xu
2004-09-22 12:08 ` jamal
2004-09-22 17:52 ` David S. Miller
2004-09-23 15:40 ` Pablo Neira
2004-09-23 19:16 ` David S. Miller [this message]
2004-09-24 3:28 ` Herbert Xu
2004-09-24 5:39 ` David S. Miller
2004-09-24 6:26 ` Herbert Xu
2004-09-24 17:58 ` David S. Miller
2004-09-24 22:06 ` Herbert Xu
2004-09-24 22:28 ` Herbert Xu
2004-09-27 12:59 ` jamal
2004-09-27 12:53 ` jamal
2004-09-23 12:07 ` Herbert Xu
2004-09-24 1:19 ` Pablo Neira
2004-09-24 3:04 ` jamal
2004-09-24 3:24 ` Herbert Xu
2004-09-27 12:46 ` jamal
2004-09-27 21:36 ` Herbert Xu
2004-09-28 2:43 ` jamal
2004-09-28 2:46 ` Herbert Xu
2004-09-28 3:06 ` jamal
2004-09-28 3:23 ` Herbert Xu
2004-09-28 3:45 ` jamal
2004-09-28 3:59 ` Herbert Xu
2004-09-28 10:36 ` jamal
2004-09-28 11:11 ` Herbert Xu
2004-09-28 12:16 ` Herbert Xu
2004-09-28 12:39 ` On DaveMs congestion control algorithm WAS(Re: " jamal
2004-09-28 18:24 ` David S. Miller
2004-09-29 2:23 ` jamal
2004-09-28 12:32 ` jamal
2004-09-29 0:13 ` Herbert Xu
2004-09-29 2:52 ` jamal
2004-09-29 3:27 ` Herbert Xu
2004-09-29 4:02 ` David S. Miller
2004-09-29 10:50 ` jamal
2004-09-29 11:42 ` Herbert Xu
2004-09-29 13:55 ` jamal
2004-09-28 21:07 ` Pablo Neira
2004-09-28 23:19 ` Herbert Xu
2004-09-28 23:20 ` David S. Miller
2004-09-29 2:28 ` jamal
2004-09-29 2:30 ` Herbert Xu
2004-09-29 2:59 ` jamal
2004-09-22 2:57 ` jamal
2004-09-22 3:39 ` Herbert Xu
2004-09-19 20:47 ` Pablo Neira
2004-09-19 21:20 ` Herbert Xu
2004-09-19 22:14 ` Pablo Neira
2004-09-19 23:31 ` Herbert Xu
[not found] ` <E1C90Da-0001V7-00@gondolin.me.apana.org.au>
2004-09-19 12:00 ` Herbert Xu
2004-09-29 9:53 James Chapman
2004-09-29 9:59 ` Herbert Xu
-- strict thread matches above, loose matches on Subject: below --
2004-09-30 9:50 James Chapman
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=20040923121651.51a58cf2.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=davem@redhat.com \
--cc=hadi@cyberus.ca \
--cc=herbert@gondor.apana.org.au \
--cc=netdev@oss.sgi.com \
--cc=pablo@eurodev.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;
as well as URLs for NNTP newsgroup(s).