All of lore.kernel.org
 help / color / mirror / Atom feed
From: "Indan Zupancic" <indan@nul.nu>
To: "Peter Zijlstra" <a.p.zijlstra@chello.nl>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org, "Evgeniy Polyakov" <johnpol@2ka.mipt.ru>,
	"Daniel Phillips" <phillips@google.com>,
	"Rik van Riel" <riel@redhat.com>,
	"David Miller" <davem@davemloft.net>
Subject: Re: [RFC][PATCH 3/4] deadlock prevention core
Date: Sat, 12 Aug 2006 20:32:12 +0200 (CEST)	[thread overview]
Message-ID: <57504.81.207.0.53.1155407532.squirrel@81.207.0.53> (raw)
In-Reply-To: <1155406120.13508.87.camel@lappy>

On Sat, August 12, 2006 20:08, Peter Zijlstra said:
> On Sat, 2006-08-12 at 19:54 +0200, Indan Zupancic wrote:
>> True, but currently memalloc_reserve isn't used in a sensible way,
>> or I'm missing something.
>
> Well, I'm somewhat reluctant to stick network related code into mm/, it
> seems well separated now.

What I had in mind was something like:

+static DEFINE_SPINLOCK(memalloc_lock);
+static int memalloc_socks;
+
+atomic_t memalloc_skbs_used;
+EXPORT_SYMBOL_GPL(memalloc_skbs_used);
+
+int sk_adjust_memalloc(int nr_socks)
+{
+	unsigned long flags;
+	unsigned int reserve;
+	int err;
+
+	spin_lock_irqsave(&memalloc_lock, flags);
+
+	memalloc_socks += nr_socks;
+	BUG_ON(memalloc_socks < 0);
+
+	reserve = nr_socks * (2 * MAX_PHYS_SEGMENTS + 	/* outbound */
+			      5 * MAX_CONCURRENT_SKBS);	/* inbound */
+
+	err = adjust_memalloc_reserve(reserve);
+	spin_unlock_irqrestore(&memalloc_lock, flags);
+	if (err) {
+		printk(KERN_WARNING
+			"Unable to change RX reserve to: %lu, error: %d\n",
+			reserve, err);
+	}
+	return err;
+}

The original code missed the brackets, so 5 * MAX_CONCURRENT_SKBS wasn't done
per socket. But the comment said it was per socket, so I added in this version.

Greetings,

Indan



WARNING: multiple messages have this Message-ID (diff)
From: "Indan Zupancic" <indan@nul.nu>
To: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org,
	netdev@vger.kernel.org, Evgeniy Polyakov <johnpol@2ka.mipt.ru>,
	Daniel Phillips <phillips@google.com>,
	Rik van Riel <riel@redhat.com>,
	David Miller <davem@davemloft.net>
Subject: Re: [RFC][PATCH 3/4] deadlock prevention core
Date: Sat, 12 Aug 2006 20:32:12 +0200 (CEST)	[thread overview]
Message-ID: <57504.81.207.0.53.1155407532.squirrel@81.207.0.53> (raw)
In-Reply-To: <1155406120.13508.87.camel@lappy>

On Sat, August 12, 2006 20:08, Peter Zijlstra said:
> On Sat, 2006-08-12 at 19:54 +0200, Indan Zupancic wrote:
>> True, but currently memalloc_reserve isn't used in a sensible way,
>> or I'm missing something.
>
> Well, I'm somewhat reluctant to stick network related code into mm/, it
> seems well separated now.

What I had in mind was something like:

+static DEFINE_SPINLOCK(memalloc_lock);
+static int memalloc_socks;
+
+atomic_t memalloc_skbs_used;
+EXPORT_SYMBOL_GPL(memalloc_skbs_used);
+
+int sk_adjust_memalloc(int nr_socks)
+{
+	unsigned long flags;
+	unsigned int reserve;
+	int err;
+
+	spin_lock_irqsave(&memalloc_lock, flags);
+
+	memalloc_socks += nr_socks;
+	BUG_ON(memalloc_socks < 0);
+
+	reserve = nr_socks * (2 * MAX_PHYS_SEGMENTS + 	/* outbound */
+			      5 * MAX_CONCURRENT_SKBS);	/* inbound */
+
+	err = adjust_memalloc_reserve(reserve);
+	spin_unlock_irqrestore(&memalloc_lock, flags);
+	if (err) {
+		printk(KERN_WARNING
+			"Unable to change RX reserve to: %lu, error: %d\n",
+			reserve, err);
+	}
+	return err;
+}

The original code missed the brackets, so 5 * MAX_CONCURRENT_SKBS wasn't done
per socket. But the comment said it was per socket, so I added in this version.

Greetings,

Indan


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@kvack.org"> email@kvack.org </a>

  reply	other threads:[~2006-08-12 18:32 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2006-08-12 14:14 [RFC][PATCH 0/4] VM deadlock prevention -v4 Peter Zijlstra
2006-08-12 14:14 ` Peter Zijlstra
2006-08-12 14:14 ` [RFC][PATCH 1/4] pfn_to_kaddr() for UML Peter Zijlstra
2006-08-12 14:14   ` Peter Zijlstra
2006-08-12 14:14 ` [RFC][PATCH 2/4] SROG allocator Peter Zijlstra
2006-08-12 14:14   ` Peter Zijlstra
2006-08-12 14:14 ` [RFC][PATCH 3/4] deadlock prevention core Peter Zijlstra
2006-08-12 14:14   ` Peter Zijlstra
2006-08-12 14:41   ` Jeff Garzik
2006-08-12 14:41     ` Jeff Garzik
2006-08-12 15:06     ` rename *MEMALLOC flags (was: Re: [RFC][PATCH 3/4] deadlock prevention core) Peter Zijlstra
2006-08-12 15:06       ` Peter Zijlstra
2006-08-12 15:28       ` Indan Zupancic
2006-08-12 15:28         ` Indan Zupancic
2006-08-12 15:28         ` Indan Zupancic
2006-08-12 15:34         ` Peter Zijlstra
2006-08-12 15:34           ` Peter Zijlstra
2006-08-12 15:34           ` Peter Zijlstra
2006-08-14  0:06       ` rename *MEMALLOC flags Daniel Phillips
2006-08-14  0:06         ` Daniel Phillips
2006-08-14  1:00         ` Paul Jackson
2006-08-14  1:00           ` Paul Jackson
2006-08-14  3:42           ` Nick Piggin
2006-08-14  3:42             ` Nick Piggin
2006-08-12 17:31   ` [RFC][PATCH 3/4] deadlock prevention core Indan Zupancic
2006-08-12 17:31     ` Indan Zupancic
2006-08-12 17:44     ` Peter Zijlstra
2006-08-12 17:44       ` Peter Zijlstra
2006-08-12 17:54       ` Indan Zupancic
2006-08-12 17:54         ` Indan Zupancic
2006-08-12 18:08         ` Peter Zijlstra
2006-08-12 18:08           ` Peter Zijlstra
2006-08-12 18:32           ` Indan Zupancic [this message]
2006-08-12 18:32             ` Indan Zupancic
2006-08-12 18:47             ` Peter Zijlstra
2006-08-12 18:47               ` Peter Zijlstra
2006-08-12 19:45               ` Indan Zupancic
2006-08-12 19:45                 ` Indan Zupancic
2006-08-12 14:14 ` [RFC][PATCH 4/4] deadlock prevention for NBD Peter Zijlstra
2006-08-12 14:14   ` Peter Zijlstra
2006-08-24 14:43   ` Pavel Machek
2006-08-24 14:43     ` Pavel Machek
2006-08-12 16:51 ` [RFC][PATCH 0/4] VM deadlock prevention -v4 Indan Zupancic
2006-08-12 16:51   ` Indan Zupancic
2006-08-12 17:33   ` Peter Zijlstra
2006-08-12 17:33     ` Peter Zijlstra
2006-08-12 18:16     ` Indan Zupancic
2006-08-12 18:16       ` Indan Zupancic
2006-08-12 18:54       ` Peter Zijlstra
2006-08-12 18:54         ` Peter Zijlstra
2006-08-12 20:05         ` Indan Zupancic
2006-08-12 20:05           ` Indan Zupancic
2006-08-14  0:42         ` Daniel Phillips
2006-08-14  0:42           ` Daniel Phillips
2006-08-14  5:20           ` Evgeniy Polyakov
2006-08-14  5:20             ` Evgeniy Polyakov
2006-08-14 12:21             ` Rik van Riel
2006-08-14 12:21               ` Rik van Riel
2006-08-14 12:51               ` Herbert Xu
2006-08-14 12:51                 ` Herbert Xu
2006-08-14 14:22                 ` Rik van Riel
2006-08-14 14:22                   ` Rik van Riel

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=57504.81.207.0.53.1155407532.squirrel@81.207.0.53 \
    --to=indan@nul.nu \
    --cc=a.p.zijlstra@chello.nl \
    --cc=davem@davemloft.net \
    --cc=johnpol@2ka.mipt.ru \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=netdev@vger.kernel.org \
    --cc=phillips@google.com \
    --cc=riel@redhat.com \
    /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.