From: Philipp Reisner <philipp.reisner@linbit.com>
To: Andi Kleen <andi@firstfloor.org>
Cc: linux-kernel@vger.kernel.org, gregkh@suse.de
Subject: Re: [PATCH 02/12] DRBD: activity_log
Date: Wed, 25 Mar 2009 11:57:27 +0100 [thread overview]
Message-ID: <200903251157.27549.philipp.reisner@linbit.com> (raw)
In-Reply-To: <20090325104641.GB11935@one.firstfloor.org>
On Wednesday 25 March 2009 11:46:41 Andi Kleen wrote:
> > > > + mutex_lock(&mdev->md_io_mutex); /* protects md_io_buffer,
> > > > al_tr_cycle, ... */
> > >
> > > Doing checksumming inside a lock looks nasty.
> >
> > Well, that is a mutex, not a spinlock. We need to hold that lock here,
>
> Yes it's independent. If it takes a lot of CPU time you'll likely have
> a bottle neck. It's normally a bad idea to do anything CPU intensive
> under a lock covering more than your current limited object.
>
We are talking about this checksum and copy to IO page loop:
for (i = 0; i < mx; i++) {
extent_nr = lc_entry(mdev->act_log,
mdev->al_tr_cycle+i)->lc_number;
buffer->updates[i+1].pos = cpu_to_be32(mdev->al_tr_cycle+i);
buffer->updates[i+1].extent = cpu_to_be32(extent_nr);
xor_sum ^= extent_nr;
}
for (; i < AL_EXTENTS_PT; i++) {
buffer->updates[i+1].pos = __constant_cpu_to_be32(-1);
buffer->updates[i+1].extent = __constant_cpu_to_be32(LC_FREE);
xor_sum ^= LC_FREE;
}
Without being a CPU expert, my guess is that the single XOR instruction
is carried out while the CPU stalls waiting for the next load instruction
to complete.
Sorry, I still do not take the argument that this is "CPU intensive".
-Phil
--
: Dipl-Ing Philipp Reisner
: LINBIT | Your Way to High Availability
: Tel: +43-1-8178292-50, Fax: +43-1-8178292-82
: http://www.linbit.com
DRBD(R) and LINBIT(R) are registered trademarks of LINBIT, Austria.
next prev parent reply other threads:[~2009-03-25 11:00 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-03-23 15:47 [PATCH 00/12] DRBD: a block device for HA clusters Philipp Reisner
2009-03-23 15:47 ` [PATCH 01/12] DRBD: lru_cache Philipp Reisner
2009-03-23 15:47 ` [PATCH 02/12] DRBD: activity_log Philipp Reisner
2009-03-23 15:47 ` [PATCH 03/12] DRBD: bitmap Philipp Reisner
2009-03-23 15:47 ` [PATCH 04/12] DRBD: request Philipp Reisner
2009-03-23 15:48 ` [PATCH 05/12] DRBD: userspace_interface Philipp Reisner
2009-03-23 15:48 ` [PATCH 06/12] DRBD: internal_data_structures Philipp Reisner
2009-03-23 15:48 ` [PATCH 07/12] DRBD: main Philipp Reisner
2009-03-23 15:48 ` [PATCH 08/12] DRBD: receiver Philipp Reisner
2009-03-23 15:48 ` [PATCH 09/12] DRBD: proc Philipp Reisner
2009-03-23 15:48 ` [PATCH 10/12] DRBD: worker Philipp Reisner
2009-03-23 15:48 ` [PATCH 11/12] DRBD: misc Philipp Reisner
2009-03-23 15:48 ` [PATCH 12/12] DRBD: final Philipp Reisner
2009-04-08 10:17 ` [PATCH 08/12] DRBD: receiver Nikanth K
2009-04-08 15:10 ` Philipp Reisner
2009-03-23 16:51 ` [PATCH 07/12] DRBD: main Alexey Dobriyan
2009-03-23 22:26 ` Philipp Reisner
2009-04-08 10:16 ` [PATCH 04/12] DRBD: request Nikanth K
2009-04-08 10:16 ` [PATCH 03/12] DRBD: bitmap Nikanth K
2009-04-08 15:09 ` Philipp Reisner
2009-03-24 12:27 ` [PATCH 02/12] DRBD: activity_log Andi Kleen
2009-03-25 10:27 ` Philipp Reisner
2009-03-25 10:46 ` Andi Kleen
2009-03-25 10:57 ` Philipp Reisner [this message]
2009-03-23 15:58 ` [PATCH 01/12] DRBD: lru_cache Greg KH
2009-04-08 10:15 ` Nikanth K
2009-04-08 15:09 ` Philipp Reisner
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=200903251157.27549.philipp.reisner@linbit.com \
--to=philipp.reisner@linbit.com \
--cc=andi@firstfloor.org \
--cc=gregkh@suse.de \
--cc=linux-kernel@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.