public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Victor Yodaiken <yodaiken@fsmlabs.com>
To: Keith Owens <kaos@ocs.com.au>
Cc: Victor Yodaiken <yodaiken@fsmlabs.com>,
	Paul Mackerras <paulus@samba.org>,
	torvalds@transmeta.com, linux-kernel@vger.kernel.org
Subject: Re: [Lse-tech] Re: RFC: patch to allow lock-free traversal of lists with insertion
Date: Wed, 10 Oct 2001 16:24:19 -0600	[thread overview]
Message-ID: <20011010162419.A13116@hq2> (raw)
In-Reply-To: <16510.1002751003@ocs3.intra.ocs.com.au>

On Thu, Oct 11, 2001 at 07:56:43AM +1000, Keith Owens wrote:
> On Wed, 10 Oct 2001 09:54:36 -0600, 
> Victor Yodaiken <yodaiken@fsmlabs.com> wrote:
> >Although I kind of like the idea of
> >	normal operation create mess by avoiding synchronization
> >	when system seems idle, get BKL, and clean up. 
> 
> That does not work.  A process can read an entry from a list then
> perform an operation that puts the process to sleep.  When it wakes up
> again, how can it tell if the list has been changed?  How can the

In general you're right, and always its better to 
reduce contention than to come up with silly algorithms for 
reducing the cost of contention, but  if you want to live
dangerously:

reader:
	atomic increment read_count
	do stuff; skip queue elements marked
		as zombie
	atomic decrement read_count


writer:
	spin lock queue
	to delete element
	mark element as zombie
	unspin

cleanup:
	spin lock queue
	if(read_count == 0){
		get big kernel lock
		if(read_count is still 0)
			// now nobody will be able to get to queue
			clean up queue
		unlock kernel
		}
	unlock spin


So you accomplished making the code harder to read and maintain, slowing
down worst case, and maybe reducing average case read spinlock delay.
For some very carefully selected cases this may be a win, but ...




  reply	other threads:[~2001-10-10 22:29 UTC|newest]

Thread overview: 67+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-10-09 15:45 RFC: patch to allow lock-free traversal of lists with insertion Paul McKenney
2001-10-09 17:00 ` Richard Henderson
2001-10-10  3:33   ` Paul Mackerras
2001-10-10 17:02     ` Richard Henderson
2001-10-10  2:05 ` [Lse-tech] " Andrea Arcangeli
2001-10-10  5:05   ` Linus Torvalds
2001-10-10  5:17     ` BALBIR SINGH
2001-10-10  5:29       ` Davide Libenzi
2001-10-10  5:46       ` Linus Torvalds
2001-10-10  6:01         ` BALBIR SINGH
2001-10-10 15:23           ` Victor Yodaiken
2001-10-10  7:14         ` kdb requires kallsyms Kirill Ratkin
2001-10-10  7:38           ` BALBIR SINGH
2001-10-10  6:16     ` [Lse-tech] Re: RFC: patch to allow lock-free traversal of lists with insertion Paul Mackerras
2001-10-10  6:30       ` Linus Torvalds
2001-10-10  7:36     ` Paul Mackerras
2001-10-10 15:54       ` Victor Yodaiken
2001-10-10 21:56         ` Keith Owens
2001-10-10 22:24           ` Victor Yodaiken [this message]
2001-10-10 23:46             ` David S. Miller
2001-10-11  0:24               ` Davide Libenzi
2001-10-10 11:54     ` Keith Owens
2001-10-10 13:42       ` AIC7XXX war
2001-10-10 21:40         ` AIC7XXX Luigi Genoni
2001-10-10 13:24   ` [Lse-tech] Re: RFC: patch to allow lock-free traversal of lists with insertion Ivan Kokshaysky
2001-10-10 13:41     ` Andrea Arcangeli
  -- strict thread matches above, loose matches on Subject: below --
2001-10-10  4:43 Paul McKenney
2001-10-10  6:54 Dipankar Sarma
2001-10-10  7:06 Dipankar Sarma
2001-10-10  7:21 ` BALBIR SINGH
2001-10-10  9:06   ` Dipankar Sarma
2001-10-10  7:58 Dipankar Sarma
     [not found] <20011010182730.0077454b.rusty@rustcorp.com.au>
2001-10-10  9:36 ` Linus Torvalds
2001-10-11  6:50   ` Rusty Russell
2001-10-10 10:06 Dipankar Sarma
2001-10-10 10:18 ` Linus Torvalds
2001-10-10 11:43   ` Dipankar Sarma
2001-10-12  3:27   ` Rusty Russell
2001-10-12 16:56     ` Linus Torvalds
2001-10-12 18:53       ` Dipankar Sarma
2001-10-13  7:25       ` Rusty Russell
2001-10-10 15:24 Paul McKenney
2001-10-10 16:58 ` Andrea Arcangeli
2001-10-10 17:25   ` Linus Torvalds
2001-10-12  5:06     ` Rusty Russell
2001-10-12 16:28       ` Linus Torvalds
2001-10-12 19:50         ` Al Dunsmuir
2001-10-13  1:07         ` Paul Mackerras
2001-10-13  1:54           ` Davide Libenzi
2001-10-13  2:04             ` Linus Torvalds
2001-10-13  2:31               ` Davide Libenzi
2001-10-13  2:46                 ` Davide Libenzi
2001-10-13  3:30                 ` Linus Torvalds
2001-10-13  2:49               ` Paul Mackerras
2001-10-13  2:00           ` Linus Torvalds
2001-10-13  7:38         ` Rusty Russell
2001-10-10 16:00 Paul McKenney
2001-10-10 21:44 Paul McKenney
2001-10-11 10:34 Dipankar Sarma
2001-10-13 14:42 Paul McKenney
2001-10-13 17:23 ` Linus Torvalds
2001-10-13 17:28   ` Linus Torvalds
2001-10-14  7:25     ` Dipankar Sarma
2001-10-13 18:42   ` Andi Kleen
2001-10-13 19:15     ` Alexander Viro
2001-10-13 20:44     ` Rusty Russell
2001-10-13 21:19   ` Rusty Russell

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=20011010162419.A13116@hq2 \
    --to=yodaiken@fsmlabs.com \
    --cc=kaos@ocs.com.au \
    --cc=linux-kernel@vger.kernel.org \
    --cc=paulus@samba.org \
    --cc=torvalds@transmeta.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox