linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vladimir Saveliev <vs@namesys.com>
To: linux-mm <linux-mm@kvack.org>
Cc: Andrew Morton <akpm@osdl.org>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	Christoph Hellwig <hch@infradead.org>
Subject: [RFC] per thread page reservation patch
Date: Fri, 07 Jan 2005 20:16:58 +0300	[thread overview]
Message-ID: <1105118217.3616.171.camel@tribesman.namesys.com> (raw)
In-Reply-To: <20050107144644.GA9606@infradead.org>

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

Hello

On Fri, 2005-01-07 at 17:46, Christoph Hellwig wrote:
>  
> > reiser4-perthread-pages.patch
> 
> this one I don't particularly object, but I'm not sure it's really
> the right thing to do.  Can you post it with a detailed description
> to linux-mm so we can kick off discussion?
> 

This patch adds an API to reserve some number of pages for exclusive use
of calling thread.  This is necessary to support operations that cannot
tolerate memory allocation failures in the middle (reiser4 uses this API
to not have to undo complex uncompleted (due to ENOMEM) filesystem tree
modifications).

Implementation is simple: reserved pages are stored in a list hanging
off calling task_struct. Caller is to manually release unused pages.

This API is supposed to be used for small reservation (no more than few
dozens of pages).
 
Looking forward for advices on how to do that better/properly
Thanks



[-- Attachment #2: reiser4-perthread-pages.patch --]
[-- Type: text/plain, Size: 6484 bytes --]



This patch adds an API to reserve some number of pages for exclusive use of
calling thread.  This is necessary to support operations that cannot tolerate
memory allocation failures in the middle.  Implementation is very simplistic
and would only work efficiently for small reservations (no more than few
dozens of pages).

Reserved pages are stored in a list hanging off calling task_struct.  This
list is only accessed by the current thread, hence, no locking is required. 
Note that this makes use of reservation from interrupt handlers impossible
without some external synchronization.  Caller is responsible for manually
releasing unused pages by calling perthread_pages_release(int nrpages) with
proper argument.

Signed-off-by: Andrew Morton <akpm@osdl.org>
---

diff -puN include/linux/gfp.h~reiser4-perthread-pages include/linux/gfp.h


 include/linux/gfp.h       |    4 +
 include/linux/init_task.h |    4 -
 include/linux/sched.h     |    3 +
 kernel/fork.c             |    4 +
 mm/page_alloc.c           |   97 ++++++++++++++++++++++++++++++++++++++++++++++
 5 files changed, 110 insertions(+), 2 deletions(-)

diff -puN include/linux/gfp.h~reiser4-perthread-pages include/linux/gfp.h
--- linux-2.6.10-rc3/include/linux/gfp.h~reiser4-perthread-pages	2004-12-22 20:09:44.153164276 +0300
+++ linux-2.6.10-rc3-vs/include/linux/gfp.h	2004-12-22 20:09:44.199167794 +0300
@@ -134,4 +134,8 @@ extern void FASTCALL(free_cold_page(stru
 
 void page_alloc_init(void);
 
+int  perthread_pages_reserve(int nrpages, int gfp);
+void perthread_pages_release(int nrpages);
+int  perthread_pages_count(void);
+
 #endif /* __LINUX_GFP_H */
diff -puN include/linux/init_task.h~reiser4-perthread-pages include/linux/init_task.h
--- linux-2.6.10-rc3/include/linux/init_task.h~reiser4-perthread-pages	2004-12-22 20:09:44.160164812 +0300
+++ linux-2.6.10-rc3-vs/include/linux/init_task.h	2004-12-22 20:09:44.201167947 +0300
@@ -112,8 +112,8 @@ extern struct group_info init_groups;
 	.proc_lock	= SPIN_LOCK_UNLOCKED,				\
 	.switch_lock	= SPIN_LOCK_UNLOCKED,				\
 	.journal_info	= NULL,						\
+	.private_pages	= LIST_HEAD_INIT(tsk.private_pages),		\
+	.private_pages_count = 0,					\
 }
 
-
-
 #endif
diff -puN include/linux/sched.h~reiser4-perthread-pages include/linux/sched.h
--- linux-2.6.10-rc3/include/linux/sched.h~reiser4-perthread-pages	2004-12-22 20:09:44.170165576 +0300
+++ linux-2.6.10-rc3-vs/include/linux/sched.h	2004-12-22 20:09:44.204168176 +0300
@@ -691,6 +691,9 @@ struct task_struct {
 	nodemask_t mems_allowed;
 	int cpuset_mems_generation;
 #endif
+
+	struct list_head private_pages;	/* per-process private pages */
+	int private_pages_count;
 };
 
 static inline pid_t process_group(struct task_struct *tsk)
diff -puN kernel/fork.c~reiser4-perthread-pages kernel/fork.c
--- linux-2.6.10-rc3/kernel/fork.c~reiser4-perthread-pages	2004-12-22 20:09:44.179166264 +0300
+++ linux-2.6.10-rc3-vs/kernel/fork.c	2004-12-22 20:09:44.215169017 +0300
@@ -154,6 +154,10 @@ static struct task_struct *dup_task_stru
 	tsk->thread_info = ti;
 	ti->task = tsk;
 
+	/* initialize list of pages privately reserved by process */
+	INIT_LIST_HEAD(&tsk->private_pages);
+	tsk->private_pages_count = 0;
+
 	/* One for us, one for whoever does the "release_task()" (usually parent) */
 	atomic_set(&tsk->usage,2);
 	return tsk;
diff -puN mm/page_alloc.c~reiser4-perthread-pages mm/page_alloc.c
--- linux-2.6.10-rc3/mm/page_alloc.c~reiser4-perthread-pages	2004-12-22 20:09:44.187166876 +0300
+++ linux-2.6.10-rc3-vs/mm/page_alloc.c	2004-12-22 20:09:44.219169323 +0300
@@ -551,6 +551,97 @@ void fastcall free_cold_page(struct page
 	free_hot_cold_page(page, 1);
 }
 
+static inline struct list_head *get_per_thread_pages(void)
+{
+	return &current->private_pages;
+}
+
+int perthread_pages_reserve(int nrpages, int gfp)
+{
+	int i;
+	struct list_head  accumulator;
+	struct list_head *per_thread;
+
+	per_thread = get_per_thread_pages();
+	INIT_LIST_HEAD(&accumulator);
+	list_splice_init(per_thread, &accumulator);
+	for (i = 0; i < nrpages; ++i) {
+		struct page *page;
+
+		page = alloc_page(gfp);
+		if (page != NULL)
+			list_add(&page->lru, &accumulator);
+		else {
+			for (; i > 0; --i) {
+				page = list_entry(accumulator.next, struct page, lru);
+				list_del(&page->lru);
+				page_cache_release(page);
+			}
+			return -ENOMEM;
+		}
+	}
+	/*
+	 * Q: why @accumulator is used, instead of directly adding pages to
+	 * the get_per_thread_pages()?
+	 *
+	 * A: because after first page is added to the get_per_thread_pages(),
+	 * next call to the alloc_page() (on the next loop iteration), will
+	 * re-use it.
+	 */
+	list_splice(&accumulator, per_thread);
+	current->private_pages_count += nrpages;
+	return 0;
+}
+EXPORT_SYMBOL(perthread_pages_reserve);
+
+void perthread_pages_release(int nrpages)
+{
+	struct list_head *per_thread;
+
+	current->private_pages_count -= nrpages;
+	per_thread = get_per_thread_pages();
+	for (; nrpages != 0; --nrpages) {
+		struct page *page;
+
+		BUG_ON(list_empty(per_thread));
+		page = list_entry(per_thread->next, struct page, lru);
+		list_del(&page->lru);
+		page_cache_release(page);
+	}
+}
+EXPORT_SYMBOL(perthread_pages_release);
+
+int perthread_pages_count(void)
+{
+	return current->private_pages_count;
+}
+EXPORT_SYMBOL(perthread_pages_count);
+
+static inline struct page *
+perthread_pages_alloc(void)
+{
+	struct list_head *perthread_pages;
+
+	/*
+	 * try to allocate pages from the per-thread private_pages pool. No
+	 * locking is needed: this list can only be modified by the thread
+	 * itself, and not by interrupts or other threads.
+	 */
+	perthread_pages = get_per_thread_pages();
+	if (!in_interrupt() && !list_empty(perthread_pages)) {
+		struct page *page;
+
+		page = list_entry(perthread_pages->next, struct page, lru);
+		list_del(&page->lru);
+		current->private_pages_count--;
+		/*
+		 * per-thread page is already initialized, just return it.
+		 */
+		return page;
+	} else
+		return NULL;
+}
+
 /*
  * Really, prep_compound_page() should be called from __rmqueue_bulk().  But
  * we cheat by calling it from here, in the order > 0 path.  Saves a branch
@@ -667,6 +758,12 @@ __alloc_pages(unsigned int gfp_mask, uns
 	 */
 	can_try_harder = (unlikely(rt_task(p)) && !in_interrupt()) || !wait;
 
+	if (order == 0) {
+		page = perthread_pages_alloc();
+		if (page != NULL)
+			return page;
+	}
+
 	zones = zonelist->zones;  /* the list of zones suitable for gfp_mask */
 
 	if (unlikely(zones[0] == NULL)) {

_

  reply	other threads:[~2005-01-07 17:17 UTC|newest]

Thread overview: 246+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-12-15  6:56 unregister_ioctl32_conversion and modules. ioctl32 revisited Andi Kleen
2004-12-15  7:46 ` Michael S. Tsirkin
2004-12-15  8:00   ` Andi Kleen
2004-12-15  8:21     ` Michael S. Tsirkin
2004-12-15  8:29       ` Andi Kleen
2004-12-15 11:42         ` Michael S. Tsirkin
2004-12-15 13:46           ` Arnd Bergmann
2004-12-15 16:12             ` Andi Kleen
2004-12-15 16:45               ` Arnd Bergmann
2004-12-15 16:57                 ` Andi Kleen
2004-12-15 17:47                   ` Arnd Bergmann
2004-12-15 17:59                     ` Andi Kleen
2004-12-15 18:21                     ` Michael S. Tsirkin
2004-12-16  4:06                       ` Andi Kleen
2004-12-26 22:26                         ` Chris Wedgwood
2004-12-26 22:49                           ` [discuss] " Arnd Bergmann
2004-12-27 11:49                             ` [discuss] Re: unregister_ioctl32_conversion and modules. ioct l32 revisited Michael S. Tsirkin
2005-01-05 15:25                             ` Michael S. Tsirkin
2005-01-05 16:07                               ` Arnd Bergmann
2004-12-15 18:20   ` unregister_ioctl32_conversion and modules. ioctl32 revisited Takashi Iwai
2004-12-15 18:30     ` Lee Revell
2004-12-15 19:34       ` Michael S. Tsirkin
2004-12-16  5:03       ` [discuss] " Andi Kleen
2004-12-16  7:53         ` Ingo Molnar
2004-12-16  8:09           ` Andi Kleen
2004-12-16  8:25             ` Andrew Morton
2004-12-16  8:30               ` Michael S. Tsirkin
2004-12-16  8:38               ` Andi Kleen
2004-12-17  1:43 ` [PATCH] " Michael S. Tsirkin
2004-12-16 16:08   ` Christoph Hellwig
2005-01-03  9:11   ` 2.6.10-mm1 Andrew Morton
2005-01-03 10:07     ` 2.6.10-mm1 Christoph Hellwig
2005-01-03 17:19       ` 2.6.10-mm1 Jesse Barnes
2005-01-03 23:29         ` 2.6.10-mm1 [failure on AMD64] Rafael J. Wysocki
2005-01-03 23:30           ` Jesse Barnes
2005-01-04 11:23           ` Thomas Molina
2005-01-04 13:22             ` Rafael J. Wysocki
2005-01-04 12:22           ` Andi Kleen
2005-01-04 21:05             ` Rafael J. Wysocki
2005-01-06 11:32       ` 2.6.10-mm1 Christoph Hellwig
2005-01-06 13:04       ` 2.6.10-mm1 David Howells
2005-01-06 13:06         ` 2.6.10-mm1 Christoph Hellwig
2005-01-03 10:25     ` 2.6.10-mm1 Christoph Hellwig
2005-01-03 13:21       ` 2.6.10-mm1 Christoph Hellwig
2005-01-03 13:35       ` 2.6.10-mm1 Michael S. Tsirkin
2005-01-03 11:48     ` 2.6.10-mm1 Christoph Hellwig
2005-01-05 17:27       ` 2.6.10-mm1 Hans Reiser
2005-01-06 13:52         ` 2.6.10-mm1 Vladimir Saveliev
2005-01-07 14:46           ` 2.6.10-mm1 Christoph Hellwig
2005-01-07 17:16             ` Vladimir Saveliev [this message]
2005-01-07 18:48               ` [RFC] per thread page reservation patch Andrew Morton
2005-01-07 20:21                 ` Nikita Danilov
2005-01-07 19:05               ` Christoph Hellwig
2005-01-07 19:12                 ` Christoph Hellwig
2005-01-07 19:21                 ` Robert Love
2005-01-07 20:48                 ` Nikita Danilov
2005-01-07 20:54                   ` Christoph Hellwig
2005-01-07 21:00                     ` Nikita Danilov
2005-01-07 21:07                       ` Christoph Hellwig
2005-01-07 19:14               ` Paulo Marques
2005-01-07 19:32                 ` Christoph Hellwig
2005-01-07 19:42                   ` Andi Kleen
2005-01-07 20:55                 ` Nikita Danilov
2005-01-07 21:24                   ` Andrew Morton
2005-01-07 21:24                     ` Andi Kleen
2005-01-07 22:12                     ` Nikita Danilov
2005-01-07 23:03                       ` Andrew Morton
2005-01-07 23:17                         ` Nikita Danilov
2005-01-07 23:43                           ` Andrew Morton
2005-01-08 12:44                             ` Nikita Danilov
2005-01-08 13:43                               ` Hugh Dickins
2005-01-09 11:35                             ` Marcelo Tosatti
2005-01-09 18:16                               ` Nikita Danilov
2005-01-25 16:39                     ` reiser4 core patches: [Was: [RFC] per thread page reservation patch] Vladimir Saveliev
2005-01-27 10:37                       ` Adrian Bunk
2005-01-27 11:01                       ` Christoph Hellwig
2005-01-03 11:51     ` 2.6.10-mm1 Christoph Hellwig
2005-01-04  9:04       ` 2.6.10-mm1 Ingo Molnar
2005-01-04  9:26         ` 2.6.10-mm1 Christoph Hellwig
2005-01-04  9:33           ` 2.6.10-mm1 Ingo Molnar
2005-01-03 15:13     ` 2.6.10-mm1 William Lee Irwin III
2005-01-03 17:17     ` 2.6.10-mm1 Jesse Barnes
2005-01-05 22:38       ` 2.6.10-mm1 Matthew Dobson
2005-01-03 20:42     ` [PATCH] pktcdvd: make two functions static Peter Osterlund
2005-01-03 20:45       ` [PATCH] pktcdvd: grep-friendly function prototypes Peter Osterlund
2005-01-03 20:47         ` [PATCH] pktcdvd: Small documentation update Peter Osterlund
2005-01-03 20:53           ` [PATCH] isofs: Remove useless include Peter Osterlund
2005-01-03 20:58             ` [PATCH] synaptics: Remove unused struct member variable Peter Osterlund
2005-01-03 22:25       ` [PATCH] pktcdvd: make two functions static Bartlomiej Zolnierkiewicz
2005-01-04  9:08     ` 2.6.10-mm1 Ingo Molnar
2005-01-05 14:40     ` [PATCH] deprecate (un)register_ioctl32_conversion Michael S. Tsirkin
2005-01-05 14:46       ` Christoph Hellwig
2005-01-05 15:03         ` Michael S. Tsirkin
2005-01-05 15:11           ` Christoph Hellwig
2005-01-05 21:33           ` Andrew Morton
2005-01-06 14:41             ` Michael S. Tsirkin
2005-01-06 14:55               ` Christoph Hellwig
2005-01-06 15:22                 ` Michael S. Tsirkin
2005-01-06 15:30                   ` Christoph Hellwig
2005-01-06 15:56                     ` Michael S. Tsirkin
2005-01-05 15:19         ` Andi Kleen
2005-01-05 15:55           ` Christoph Hellwig
2005-01-05 18:23       ` Takashi Iwai
2005-01-05 21:34         ` Andrew Morton
2005-01-06  8:22           ` 2.6.10-mm2 Andrew Morton
2005-01-06  8:39             ` 2.6.10-mm2 Nick Piggin
2005-01-06  9:11             ` 2.6.10-mm2 Eyal Lebedinsky
2005-01-06  9:24               ` 2.6.10-mm2 Andrew Morton
2005-01-06  9:27               ` 2.6.10-mm2 Christoph Hellwig
2005-01-06 10:17             ` 2.6.10-mm2 Juri Prokofjev
2005-01-06 14:54               ` 2.6.10-mm2 Dave Airlie
2005-01-06 10:17             ` [PATCH 2.6.10-mm2] m32r: build fix Hirokazu Takata
2005-01-06 10:47             ` 2.6.10-mm2 Christoph Hellwig
2005-01-06 11:19             ` 2.6.10-mm2 error: redefinition of `struct cfq_io_context' Helge Hafting
2005-01-06 14:21               ` Helge Hafting
2005-01-06 12:06             ` 2.6.10-mm2 Marcos D. Marado Torres
2005-01-11 14:08               ` acpi_power_off on 2.6.10-mm3 WAS: 2.6.10-mm2 Marcos D. Marado Torres
2005-01-06 12:48             ` 2.6.10-mm2 Sam Ravnborg
2005-01-06 18:15               ` 2.6.10-mm2 Felipe Alfaro Solana
2005-01-06 14:51             ` [PATCH] fget_light/fput_light for ioctls Michael S. Tsirkin
2005-01-06 16:18               ` [PATCH] fget_light/fput_light for ioctls (fixed) Michael S. Tsirkin
2005-01-06 15:00             ` [patch] 2.6.10-mm2: remove umsdos MAINTAINERS entry Adrian Bunk
2005-01-06 15:03             ` [patch] 2.6.10-mm2: fix MTD_BLOCK2MTD dependency Adrian Bunk
2005-01-08 20:18               ` Jörn Engel
2005-01-06 17:11             ` 2.6.10-mm2 Alexander Gran
2005-01-06 17:55               ` 2.6.10-mm2 Diego Calleja
2005-01-06 18:17                 ` 2.6.10-mm2 Marc Ballarin
2005-01-06 17:48             ` 2.6.10-mm2: swsusp regression Rafael J. Wysocki
2005-01-06 22:52               ` Pavel Machek
2005-01-06 23:41                 ` Rafael J. Wysocki
2005-01-06 23:48                   ` Pavel Machek
2005-01-07  0:24                     ` Nigel Cunningham
2005-01-07  0:29                       ` Pavel Machek
2005-01-07  0:45                         ` Nigel Cunningham
2005-01-07 12:45                     ` Rafael J. Wysocki
2005-01-07 22:12                       ` Nigel Cunningham
2005-01-08  0:56                         ` Rafael J. Wysocki
2005-01-08  9:49                           ` 2.6.10-mm2: swsusp regression [update] Rafael J. Wysocki
2005-01-08  9:56                             ` Nigel Cunningham
2005-01-08 13:19                             ` Pavel Machek
2005-01-08 15:10                               ` Rafael J. Wysocki
2005-01-08 15:44                                 ` Pavel Machek
2005-01-12 18:51                                   ` Rafael J. Wysocki
2005-01-12 21:01                                     ` Pavel Machek
2005-01-12 22:44                                       ` Rafael J. Wysocki
2005-01-12 22:46                                         ` Pavel Machek
2005-01-12 22:58                                           ` Nigel Cunningham
2005-01-12 23:02                                           ` Rafael J. Wysocki
2005-01-12 23:28                                             ` Nigel Cunningham
2005-01-13  0:59                                               ` [PATCH] Fix a bug in timer_suspend() on x86_64 Rafael J. Wysocki
2005-01-13 10:08                                                 ` Pavel Machek
2005-01-13 10:14                                                   ` Nigel Cunningham
2005-01-13 19:47                                                 ` Andi Kleen
2005-01-08 17:22                                 ` 2.6.10-mm2: swsusp regression [update] Barry K. Nathan
2005-01-06 17:57             ` [patch] 2.6.10-mm2: move CPUSETS above EMBEDDED Adrian Bunk
2005-01-07  6:20               ` Paul Jackson
2005-01-06 18:15             ` [2.6 patch] 2.6.10-mm2: let I2C_ALGO_SGI depend on MIPS Adrian Bunk
     [not found]               ` <20050106192701.GA13955@linux-mips.org>
2005-01-06 19:35                 ` Ilya A. Volynets-Evenbakh
2005-01-06 19:46                   ` Greg KH
2005-01-07  9:12                     ` Ladislav Michl
2005-01-07 19:14                       ` Greg KH
2005-01-06 20:30             ` 2.6.10-mm2 Ramón Rey Vicente
2005-01-07  9:39             ` 2.6.10-mm2 Benoit Boissinot
2005-01-07 13:13               ` 2.6.10-mm2 Brice Goglin
2005-01-09  1:26                 ` 2.6.10-mm2 Dave Airlie
2005-01-09  8:55                   ` 2.6.10-mm2 Brice Goglin
2005-01-08  2:43               ` 2.6.10-mm2 Dave Airlie
2005-01-08 12:27                 ` 2.6.10-mm2 Benoit Boissinot
2005-01-08 13:42                   ` 2.6.10-mm2 Dave Airlie
2005-01-08 14:18                     ` 2.6.10-mm2 Marc Ballarin
2005-01-09  1:23                       ` 2.6.10-mm2 Dave Airlie
2005-01-08 16:46                     ` 2.6.10-mm2 Mike Werner
2005-01-08 13:48                   ` 2.6.10-mm2 Dave Airlie
2005-01-08 15:41                     ` 2.6.10-mm2 Benoit Boissinot
2005-01-09  1:38                       ` 2.6.10-mm2 Dave Airlie
2005-01-09 14:09                         ` 2.6.10-mm2 Benoit Boissinot
2005-01-09 14:15                           ` 2.6.10-mm2 Brice Goglin
2005-01-10  7:40                             ` 2.6.10-mm2 Dave Airlie
2005-01-10  7:49                               ` 2.6.10-mm2 Brice Goglin
     [not found]                                 ` <21d7e9970501100101353cf602@mail.gmail.com>
2005-01-10 10:14                                   ` 2.6.10-mm2 solved Brice Goglin
2005-01-10 16:41                                     ` Brice Goglin
2005-01-08  1:31             ` AGP Oops (was Re: 2.6.10-mm2) Sean Neakums
2005-01-08  1:36               ` Andrew Morton
2005-01-08 13:01                 ` Sean Neakums
2005-01-06 14:06           ` [PATCH] macros to detect existance of unlocked_ioctl and ioctl_compat Michael S. Tsirkin
2005-01-06 14:53             ` Christoph Hellwig
2005-01-06 15:09               ` Andi Kleen
2005-01-06 15:14                 ` Christoph Hellwig
2005-01-06 15:22                   ` Lee Revell
2005-01-06 15:31                     ` Christoph Hellwig
2005-01-06 15:38                       ` Lee Revell
2005-01-06 19:03                       ` Catalin Marinas
2005-01-06 15:37                   ` Andi Kleen
2005-01-06 16:58                   ` Petr Vandrovec
2005-01-06 16:35               ` Petr Vandrovec
2005-01-06 16:39                 ` Christoph Hellwig
2005-01-06 16:57                 ` Andi Kleen
2005-01-06 17:26                   ` Petr Vandrovec
2005-01-06 17:53                     ` Andi Kleen
2005-01-06 18:19                       ` Petr Vandrovec
2005-01-06 19:35                       ` Greg KH
2005-01-06 19:51                         ` Andi Kleen
2005-01-06 19:59                           ` David S. Miller
2005-01-06 20:44                             ` Andi Kleen
2005-01-06 21:09                               ` Petr Vandrovec
2005-01-06 21:24                                 ` Greg KH
2005-01-06 21:59                                   ` [linux-usb-devel] " David Brownell
2005-01-06 22:48                                     ` Greg KH
2005-01-07 11:49                       ` [discuss] " Arnd Bergmann
2005-01-07 12:30                         ` Andi Kleen
2005-01-06 22:34                 ` Pavel Machek
2005-01-12 20:36             ` [PATCH] fix: macros to detect existance of unlocked_ioctl and compat_ioctl Michael S. Tsirkin
2005-01-12 21:29               ` Greg KH
2005-01-12 21:43                 ` Andi Kleen
2005-01-12 22:52                   ` Greg KH
2005-01-12 23:10                     ` Andrew Morton
2005-01-12 23:16                       ` Greg KH
2005-01-16  5:38                         ` Werner Almesberger
2005-01-20  5:38                       ` 2.6.11-rc1-mm2 Andrew Morton
2005-01-20  6:53                         ` 2.6.11-rc1-mm2: CONFIG_SMP=n compile error Adrian Bunk
2005-01-20  7:12                           ` Andrew Morton
2005-01-20 17:44                             ` Rafael J. Wysocki
2005-01-20  9:57                         ` 2.6.11-rc1-mm2 Steffen Klassert
2005-01-20 10:39                           ` 2.6.11-rc1-mm2 Christoph Hellwig
2005-01-20 11:40                         ` 2.6.11-rc1-mm2 Benoit Boissinot
2005-01-20 11:49                           ` 2.6.11-rc1-mm2 Benoit Boissinot
2005-01-20 11:58                         ` 2.6.11-rc1-mm2 Christoph Hellwig
2005-01-21  0:09                         ` security hook missing in compat ioctl in 2.6.11-rc1-mm2 Michael S. Tsirkin
2005-01-21  0:10                           ` Chris Wright
2005-01-21  1:26                           ` [PATCH] compat ioctl security hook fixup Chris Wright
2005-01-21  4:19                             ` Andi Kleen
2005-01-21  5:51                               ` Chris Wright
2005-01-21  6:11                                 ` Andi Kleen
2005-01-21  6:35                                   ` [PATCH] compat ioctl security hook fixup (take2) Chris Wright
2005-01-21  8:06                         ` 2.6.11-rc1-mm2 Con Kolivas
2005-01-21  8:30                           ` 2.6.11-rc1-mm2 Andrew Morton
2005-01-21  8:34                           ` 2.6.11-rc1-mm2 Andrew Morton
2005-01-21  8:37                             ` 2.6.11-rc1-mm2 Con Kolivas
2005-01-21 12:48                           ` 2.6.11-rc1-mm2 Adrian Bunk
2005-01-21 22:29                             ` 2.6.11-rc1-mm2 Con Kolivas
2005-01-21 22:43                         ` [PATCH] sched: account rt_tasks as iso_ticks Con Kolivas
2005-02-01  0:34                         ` 2.6.11-rc1-mm2 Ed Tomlinson
2005-02-03 16:36                           ` 2.6.11-rc1-mm2 Alexander Nyberg
2005-01-12 22:13                 ` [PATCH] fix: macros to detect existance of unlocked_ioctl and compat_ioctl Andreas Dilger
2005-01-12 22:58                   ` Greg KH
2005-01-13 10:57                     ` Takashi Iwai

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=1105118217.3616.171.camel@tribesman.namesys.com \
    --to=vs@namesys.com \
    --cc=akpm@osdl.org \
    --cc=hch@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.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;
as well as URLs for NNTP newsgroup(s).