All of lore.kernel.org
 help / color / mirror / Atom feed
From: Oliver Hartkopp <oliver@hartkopp.net>
To: Arnaldo Carvalho de Melo <acme@ghostprotocols.net>,
	Eric Dumazet <dada1@cosmosbay.com>,
	David Miller <davem@davemloft.net>
Cc: netdev@vger.kernel.org
Subject: Patch: [NET]: Remove CONFIG_PROC_FS depency for pcounter inuse
Date: Sat, 01 Mar 2008 06:19:51 +0100	[thread overview]
Message-ID: <47C8E777.5050804@hartkopp.net> (raw)

[-- Attachment #1: Type: text/plain, Size: 1091 bytes --]

Hi all,

attached you'll find a patch that fixes the depency that has been 
introduced in commit 65f7651788e18fadb2fbb7276af935d7871e1803 ([NET]: 
prot_inuse cleanups and optimizations).

As the inuse counters are only used by internet protocols right now, 
using CONFIG_INET would have been more obvious to recognize this illegal 
optimization here. Going a bit deeper into this problem we can see, that 
the pcounters are ONLY used for the internet protocols BUT initialized 
for ALL protocols in proto_[un|]register() in net/core/sock.c.

This forces all network protocols to initialize the pcounters and 
therefore request dynamic percpu memory even when it is not used at all.

I would suggest to

1. move the ..._inuse_[init|free]() stuff from sock.c to af_inet[|6].c 
and his friends

OR

2. add new parameters to proto_[un|]register() like 'alloc_inuse' and 
'free_inuse'

My favourite sollution would be the second one but before creating a 
patch for one of these suggestions, i wanted to ask for your opinion or 
if there is any 'even nicer' idea from your side.

Regards,
Oliver

[-- Attachment #2: remove_config_proc_fs_depency_for_pcounter_inuse.patch --]
[-- Type: text/x-patch, Size: 644 bytes --]


[NET]: Remove CONFIG_PROC_FS depency for pcounter inuse

The pcounters are initialized for each protocol and could also be used outside
CONFIG_INET context which forces CONFIG_PROC_FS to be set.

Signed-off-by: Oliver Hartkopp <oliver@hartkopp.net>

diff --git a/include/net/sock.h b/include/net/sock.h
index fd98760..505ac6f 100644
--- a/include/net/sock.h
+++ b/include/net/sock.h
@@ -552,9 +552,7 @@ struct proto {
 	int			(*get_port)(struct sock *sk, unsigned short snum);
 
 	/* Keeping track of sockets in use */
-#ifdef CONFIG_PROC_FS
 	struct pcounter		inuse;
-#endif
 
 	/* Memory pressure */
 	void			(*enter_memory_pressure)(void);

             reply	other threads:[~2008-03-01  5:52 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-03-01  5:19 Oliver Hartkopp [this message]
2008-03-01  9:03 ` Patch: [NET]: Remove CONFIG_PROC_FS depency for pcounter inuse Eric Dumazet
2008-03-01 11:22   ` Oliver Hartkopp
2008-03-01 12:02     ` Eric Dumazet
2008-03-01 12:48       ` Oliver Hartkopp
2008-03-01 13:45         ` Eric Dumazet
2008-03-01 13:52           ` Oliver Hartkopp

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=47C8E777.5050804@hartkopp.net \
    --to=oliver@hartkopp.net \
    --cc=acme@ghostprotocols.net \
    --cc=dada1@cosmosbay.com \
    --cc=davem@davemloft.net \
    --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 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.