All of lore.kernel.org
 help / color / mirror / Atom feed
* Fw: [BUG] alignment problem in net/core/flow.c:flow_key_compare
@ 2004-03-19  0:29 Andrew Morton
  2004-03-19  2:55 ` YOSHIFUJI Hideaki / 吉藤英明
  0 siblings, 1 reply; 9+ messages in thread
From: Andrew Morton @ 2004-03-19  0:29 UTC (permalink / raw)
  To: netdev


This is in 2.6.4:

Begin forwarded message:

Date: Thu, 18 Mar 2004 11:53:02 +0100
From: mru@kth.se (Måns Rullgård)
To: linux-kernel@vger.kernel.org
Subject: [BUG] alignment problem in net/core/flow.c:flow_key_compare


There is a problem with alignment in the flow_key_compare function in
net/core/flow.c.  It takes arguments of type struct flowi * and casts
them to flow_compare_t *, which is 64 bits on 64-bit machines.  It
then proceeds to read and compare 64-bit values from these pointers.
The problem is that struct flowi only requires 32-bit alignment, so
these reads cause numerous unaligned exceptions.  On average, I get
nearly 1000 unaligned exceptions per second.

The solutions I see are either to force the alignment of struct flowi
to 64 bits, or to use 32-bit access in flow_key_compare.

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

^ permalink raw reply	[flat|nested] 9+ messages in thread
* [BUG] alignment problem in net/core/flow.c:flow_key_compare
@ 2004-03-18 10:53 Måns Rullgård
  2004-03-18 11:25 ` Måns Rullgård
  0 siblings, 1 reply; 9+ messages in thread
From: Måns Rullgård @ 2004-03-18 10:53 UTC (permalink / raw)
  To: linux-kernel

There is a problem with alignment in the flow_key_compare function in
net/core/flow.c.  It takes arguments of type struct flowi * and casts
them to flow_compare_t *, which is 64 bits on 64-bit machines.  It
then proceeds to read and compare 64-bit values from these pointers.
The problem is that struct flowi only requires 32-bit alignment, so
these reads cause numerous unaligned exceptions.  On average, I get
nearly 1000 unaligned exceptions per second.

The solutions I see are either to force the alignment of struct flowi
to 64 bits, or to use 32-bit access in flow_key_compare.

-- 
Måns Rullgård
mru@kth.se

^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2004-03-19  5:00 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2004-03-19  0:29 Fw: [BUG] alignment problem in net/core/flow.c:flow_key_compare Andrew Morton
2004-03-19  2:55 ` YOSHIFUJI Hideaki / 吉藤英明
2004-03-19  2:59   ` Andrew Morton
2004-03-19  4:21     ` David S. Miller
2004-03-19  5:00     ` YOSHIFUJI Hideaki / 吉藤英明
  -- strict thread matches above, loose matches on Subject: below --
2004-03-18 10:53 Måns Rullgård
2004-03-18 11:25 ` Måns Rullgård
2004-03-18 18:30   ` David S. Miller
2004-03-18 19:41     ` Måns Rullgård

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.