Merge pull request #5834 from jsquyres/pr/v4.0.x/2-more-vader-fixes
v4.0.x: 2 more vader fixes
Этот коммит содержится в:
Коммит
4e2d26e08b
@ -56,6 +56,16 @@ static inline void mca_btl_vader_fbox_set_header (mca_btl_vader_fbox_hdr_t *hdr,
|
|||||||
hdr->data.tag = tag;
|
hdr->data.tag = tag;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static inline mca_btl_vader_fbox_hdr_t mca_btl_vader_fbox_read_header (mca_btl_vader_fbox_hdr_t *hdr)
|
||||||
|
{
|
||||||
|
mca_btl_vader_fbox_hdr_t tmp;
|
||||||
|
uint16_t tag = hdr->data.tag;
|
||||||
|
opal_atomic_rmb ();
|
||||||
|
tmp.ival = hdr->ival;
|
||||||
|
tmp.data.tag = tag;
|
||||||
|
return tmp;
|
||||||
|
}
|
||||||
|
|
||||||
/* attempt to reserve a contiguous segment from the remote ep */
|
/* attempt to reserve a contiguous segment from the remote ep */
|
||||||
static inline bool mca_btl_vader_fbox_sendi (mca_btl_base_endpoint_t *ep, unsigned char tag,
|
static inline bool mca_btl_vader_fbox_sendi (mca_btl_base_endpoint_t *ep, unsigned char tag,
|
||||||
void * restrict header, const size_t header_size,
|
void * restrict header, const size_t header_size,
|
||||||
@ -175,7 +185,7 @@ static inline bool mca_btl_vader_check_fboxes (void)
|
|||||||
int poll_count;
|
int poll_count;
|
||||||
|
|
||||||
for (poll_count = 0 ; poll_count <= MCA_BTL_VADER_POLL_COUNT ; ++poll_count) {
|
for (poll_count = 0 ; poll_count <= MCA_BTL_VADER_POLL_COUNT ; ++poll_count) {
|
||||||
const mca_btl_vader_fbox_hdr_t hdr = {.ival = MCA_BTL_VADER_FBOX_HDR(ep->fbox_in.buffer + start)->ival};
|
const mca_btl_vader_fbox_hdr_t hdr = mca_btl_vader_fbox_read_header (MCA_BTL_VADER_FBOX_HDR(ep->fbox_in.buffer + start));
|
||||||
|
|
||||||
/* check for a valid tag a sequence number */
|
/* check for a valid tag a sequence number */
|
||||||
if (0 == hdr.data.tag || hdr.data.seq != ep->fbox_in.seq) {
|
if (0 == hdr.data.tag || hdr.data.seq != ep->fbox_in.seq) {
|
||||||
|
@ -12,7 +12,7 @@
|
|||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
* Copyright (c) 2006-2007 Voltaire. All rights reserved.
|
* Copyright (c) 2006-2007 Voltaire. All rights reserved.
|
||||||
* Copyright (c) 2009-2010 Cisco Systems, Inc. All rights reserved.
|
* Copyright (c) 2009-2010 Cisco Systems, Inc. All rights reserved.
|
||||||
* Copyright (c) 2010-2017 Los Alamos National Security, LLC.
|
* Copyright (c) 2010-2018 Los Alamos National Security, LLC.
|
||||||
* All rights reserved.
|
* All rights reserved.
|
||||||
* $COPYRIGHT$
|
* $COPYRIGHT$
|
||||||
*
|
*
|
||||||
@ -155,7 +155,11 @@ static inline mca_btl_vader_hdr_t *vader_fifo_read (vader_fifo_t *fifo, struct m
|
|||||||
|
|
||||||
static inline void vader_fifo_init (vader_fifo_t *fifo)
|
static inline void vader_fifo_init (vader_fifo_t *fifo)
|
||||||
{
|
{
|
||||||
fifo->fifo_head = fifo->fifo_tail = VADER_FIFO_FREE;
|
/* due to a compiler bug in Oracle C 5.15 the following line was broken into two. Not
|
||||||
|
* ideal but oh well. See #5814 */
|
||||||
|
/* fifo->fifo_head = fifo->fifo_tail = VADER_FIFO_FREE; */
|
||||||
|
fifo->fifo_head = VADER_FIFO_FREE;
|
||||||
|
fifo->fifo_tail = VADER_FIFO_FREE;
|
||||||
fifo->fbox_available = mca_btl_vader_component.fbox_max;
|
fifo->fbox_available = mca_btl_vader_component.fbox_max;
|
||||||
mca_btl_vader_component.my_fifo = fifo;
|
mca_btl_vader_component.my_fifo = fifo;
|
||||||
}
|
}
|
||||||
|
Загрузка…
x
Ссылка в новой задаче
Block a user