Re: [PATCH] PPC64 iSeries: cleanup viopath

From: Hollis Blanchard
Date: Wed Mar 16 2005 - 10:19:40 EST


On Mar 15, 2005, at 9:53 AM, Stephen Rothwell wrote:

On Tue, 15 Mar 2005 08:32:27 -0600 Hollis Blanchard <hollis@xxxxxxxxxxxxxx> wrote:

On Mar 14, 2005, at 9:34 PM, Stephen Rothwell wrote:

Since you brought this file to my attention, I figured I might as well
do
some simple cleanups. This patch does:
- single bit int bitfields are a bit suspect and Anndrew pointed
out recently that they are probably slower to access than ints

--- linus/arch/ppc64/kernel/viopath.c 2005-03-13 04:07:42.000000000
+1100
+++ linus-cleanup.1/arch/ppc64/kernel/viopath.c 2005-03-15
14:02:48.000000000 +1100
@@ -56,8 +57,8 @@
* But this allows for other support in the future.
*/
static struct viopathStatus {
- int isOpen:1; /* Did we open the path? */
- int isActive:1; /* Do we have a mon msg outstanding */
+ int isOpen; /* Did we open the path? */
+ int isActive; /* Do we have a mon msg outstanding */
int users[VIO_MAX_SUBTYPES];
HvLpInstanceId mSourceInst;
HvLpInstanceId mTargetInst;

Why not use a byte instead of a full int (reordering the members for
alignment)?

Because "classical" boleans are ints.

Because I don't know the relative speed of accessing single byte variables.

I didn't see the original observation that bitfields are slow. If the argument was that loading a bitfield requires a load then mask, then you'll be happy to find that PPC has word, halfword, and byte load instructions. So loading a byte (unsigned, as Brad pointed out) should be just as fast as loading a word.

It really makes little difference, I was just trying to get rid of the
silly signed single bit bitfields ...

I understand. I was half being nitpicky, and half wondering if there was an actual reason I was missing.

-Hollis

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/