<feed xmlns='http://www.w3.org/2005/Atom'>
<title>user/sven/linux.git/include/linux/completion.h, branch v2.6.31.2</title>
<subtitle>Linux Kernel
</subtitle>
<id>https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v2.6.31.2</id>
<link rel='self' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/atom?h=v2.6.31.2'/>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/'/>
<updated>2008-08-26T08:26:54Z</updated>
<entry>
<title>sched: add kernel doc for the completion, fix kernel-doc-nano-HOWTO.txt</title>
<updated>2008-08-26T08:26:54Z</updated>
<author>
<name>Kevin Diggs</name>
<email>kevdig@hypersurf.com</email>
</author>
<published>2008-08-26T08:26:54Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=65eb3dc609dec17deea48dcd4de2e549d29a9824'/>
<id>urn:sha1:65eb3dc609dec17deea48dcd4de2e549d29a9824</id>
<content type='text'>
This patch adds kernel doc for the completion feature.

An error in the split-man.pl PERL snippet in kernel-doc-nano-HOWTO.txt is
also fixed.

Signed-off-by: Kevin Diggs &lt;kevdig@hypersurf.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>completions: uninline try_wait_for_completion and completion_done</title>
<updated>2008-08-15T15:35:44Z</updated>
<author>
<name>Dave Chinner</name>
<email>david@fromorbit.com</email>
</author>
<published>2008-08-15T07:40:44Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=be4de35263f59ca1f4740edfffbfb02cc3f2189e'/>
<id>urn:sha1:be4de35263f59ca1f4740edfffbfb02cc3f2189e</id>
<content type='text'>
m68k fails to build with these functions inlined in completion.h.  Move
them out of line into sched.c and export them to avoid this problem.

Signed-off-by: Dave Chinner &lt;david@fromorbit.com&gt;
Cc: Geert Uytterhoeven &lt;geert@linux-m68k.org&gt;
Cc: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Andrew Morton &lt;akpm@linux-foundation.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@linux-foundation.org&gt;
</content>
</entry>
<entry>
<title>[XFS] extend completions to provide XFS object flush requirements</title>
<updated>2008-08-13T06:40:43Z</updated>
<author>
<name>David Chinner</name>
<email>david@fromorbit.com</email>
</author>
<published>2008-08-13T06:40:43Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=39d2f1ab2a36ac527a6c41cfe689f50c239eaca3'/>
<id>urn:sha1:39d2f1ab2a36ac527a6c41cfe689f50c239eaca3</id>
<content type='text'>
XFS object flushing doesn't quite match existing completion semantics.  It
mixed exclusive access with completion.  That is, we need to mark an object as
being flushed before flushing it to disk, and then block any other attempt to
flush it until the completion occurs.  We do this but adding an extra count to
the completion before we start using them.  However, we still need to
determine if there is a completion in progress, and allow no-blocking attempts
fo completions to decrement the count.

To do this we introduce:

int try_wait_for_completion(struct completion *x)
	returns a failure status if done == 0, otherwise decrements done
	to zero and returns a "started" status. This is provided
	to allow counted completions to begin safely while holding
	object locks in inverted order.

int completion_done(struct completion *x)
	returns 1 if there is no waiter, 0 if there is a waiter
	(i.e. a completion in progress).

This replaces the use of semaphores for providing this exclusion
and completion mechanism.

SGI-PV: 981498

SGI-Modid: xfs-linux-melb:xfs-kern:31816a

Signed-off-by: David Chinner &lt;david@fromorbit.com&gt;
Signed-off-by: Lachlan McIlroy &lt;lachlan@sgi.com&gt;
</content>
</entry>
<entry>
<title>Add wait_for_completion_killable</title>
<updated>2007-12-06T22:40:19Z</updated>
<author>
<name>Matthew Wilcox</name>
<email>matthew@wil.cx</email>
</author>
<published>2007-12-06T17:29:54Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=009e577e079656d51d0fe9b15e61e41b00816c29'/>
<id>urn:sha1:009e577e079656d51d0fe9b15e61e41b00816c29</id>
<content type='text'>
Signed-off-by: Matthew Wilcox &lt;willy@linux.intel.com&gt;
</content>
</entry>
<entry>
<title>sched: fix fastcall mismatch in completion APIs</title>
<updated>2007-10-24T16:23:48Z</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2007-10-24T16:23:48Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=b15136e9497ef5d6e08cf665e0d0acf7a229f6dc'/>
<id>urn:sha1:b15136e9497ef5d6e08cf665e0d0acf7a229f6dc</id>
<content type='text'>
Jeff Dike noticed that wait_for_completion_interruptible()'s prototype
had a mismatched fastcall.

Fix this by removing the fastcall attributes from all the completion APIs.

Found-by: Jeff Dike &lt;jdike@linux.intel.com&gt;
Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
</content>
</entry>
<entry>
<title>[PATCH] lockdep: clean up completion initializer in smpboot.c</title>
<updated>2006-07-10T20:24:14Z</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2006-07-10T11:44:05Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=f86bf9b7bcc5d325687a8b80da8ee3eb56e02da7'/>
<id>urn:sha1:f86bf9b7bcc5d325687a8b80da8ee3eb56e02da7</id>
<content type='text'>
Clean up lockdep on-stack-completion initializer.  (This also removes the
dependency on waitqueue_lock_key.)

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] lockdep: add DECLARE_COMPLETION_ONSTACK() API</title>
<updated>2006-07-03T22:27:00Z</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2006-07-03T07:24:28Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=8b3db9c542e18b71d4820da4dd9401ee030feacb'/>
<id>urn:sha1:8b3db9c542e18b71d4820da4dd9401ee030feacb</id>
<content type='text'>
lockdep needs to have the waitqueue lock initialized for on-stack waitqueues
implicitly initialized by DECLARE_COMPLETION().  Introduce the API.

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] completion API additions</title>
<updated>2005-01-21T00:08:46Z</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2005-01-21T00:08:46Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=2feb53c6a00bb0305e9a9e3e88414f980da32894'/>
<id>urn:sha1:2feb53c6a00bb0305e9a9e3e88414f980da32894</id>
<content type='text'>
Adds 3 new completion API calls, which are a straightforward extension of
the current APIs:

 int wait_for_completion_interruptible(struct completion *x);
 unsigned long wait_for_completion_timeout(struct completion *x,
                                                   unsigned long timeout);
 unsigned long wait_for_completion_interruptible_timeout(
                        struct completion *x, unsigned long timeout);

This enables the conversion of more semaphore-using code to completions.
There is code that cannot be converted right now (and is forced to use
semaphores) because these primitives are missing.  Thomas Gleixner has a
bunch of patches to make use of them.

Signed-off-by: Ingo Molnar &lt;mingo@elte.hu&gt;
Tested-by: Thomas Gleixner &lt;tglx@linutronix.de&gt;
Signed-off-by: Andrew Morton &lt;akpm@osdl.org&gt;
Signed-off-by: Linus Torvalds &lt;torvalds@osdl.org&gt;
</content>
</entry>
<entry>
<title>[PATCH] tcore-fixes-2.5.50-E6</title>
<updated>2002-12-02T00:29:39Z</updated>
<author>
<name>Ingo Molnar</name>
<email>mingo@elte.hu</email>
</author>
<published>2002-12-02T00:29:39Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=8a0611595372910f0ead55d294a48a89136b7006'/>
<id>urn:sha1:8a0611595372910f0ead55d294a48a89136b7006</id>
<content type='text'>
This fixes threaded coredumps and streamlines the code.  The old code
caused crashes and hung coredumps.  The new code has been tested for
some time already and appears to be robust.  Changes:

 - the code now uses completions instead of a semaphore and a waitqueue,
   attached to mm_struct:

        /* coredumping support */
        int core_waiters;
        struct completion *core_startup_done, core_done;

 - extended the completion concept with a 'complete all' call - all pending
   threads are woken up in that case.

 - core_waiters is a plain integer now - it's always accessed from under
   the mmap_sem. It's also used as the fastpath-check in the sys_exit()
   path, instead of -&gt;dumpable (which was incorrect).

 - got rid of the -&gt;core_waiter task flag - it's not needed anymore.
</content>
</entry>
<entry>
<title>v2.4.6.6 -&gt; v2.4.6.7</title>
<updated>2002-02-05T03:11:26Z</updated>
<author>
<name>Linus Torvalds</name>
<email>torvalds@athlon.transmeta.com</email>
</author>
<published>2002-02-05T03:11:26Z</published>
<link rel='alternate' type='text/html' href='https://git.stealer.net/cgit.cgi/user/sven/linux.git/commit/?id=74f5133bc757c27c168be048b66ddfe53160a793'/>
<id>urn:sha1:74f5133bc757c27c168be048b66ddfe53160a793</id>
<content type='text'>
  - Andreas Dilger: various ext2 cleanups
  - Richard Gooch: devfs update
  - Johannes Erdfelt: USB updates
  - Alan Cox: merges
  - David Miller: fix SMP pktsched bootup deadlock (CONFIG_NET_SCHED)
  - Roman Zippel: AFFS update
  - Anton Altaparmakov: NTFS update
  - me: fix races in vfork() (semaphores are not good completion handlers)
  - Jeff Garzik: net driver updates, sysvfs update
</content>
</entry>
</feed>
