Messages in this thread | | | Subject | RE: HELP: Is writeq an atomic operation?? | Date | Fri, 2 May 2008 17:31:50 -0600 | From | "Moore, Eric" <> |
| |
On Friday, May 02, 2008 5:22 PM, Roland Dreier wrote: > > Yeah, I forgot I have a #ifndef writeq, then defined the > x86_64 version > > of that. I've not tested on x86, so I'm not sure whether > it works. > > How are you handling writeq when its not defined, as the > case in x86? > > Write two writel() inside a spinlock to avoid any transactions in the > middle (the HW I'm dealing with can deal with two 32-bit transactions, > as long as nothing comes in the middle). If your hardware demands a > single 64-bit transaction, you may be in trouble, because I'm not sure > all 32-bit systems can generate such a PCIe transaction. > > You can see include/linux/mlx4/doorbell.h for exactly what I did. >
Thanks for the code sample. Yes, I need to send a single atomic 64-bit transaction.
Eric
| |