Commit 6f119a22 authored by Laurent Dufour's avatar Laurent Dufour Committed by Pavel Emelyanov

test/zdtm: Fix pagesize issue in PACKET_RX/TX_RING

Calls to setsockopt(PACKET_RX_RING/PACKET_TX_RING) are dependent of the
system's page size.
Using sysconf() page size makes these tests working on ppc64 where page
size is 64K.
Signed-off-by: 's avatarLaurent Dufour <ldufour@linux.vnet.ibm.com>
Acked-by: 's avatarAndrew Vagin <avagin@odin.com>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent cf4496be
......@@ -138,10 +138,10 @@ int main(int argc, char **argv)
}
memset(&ring, 0, sizeof(ring));
ring.tp_block_size = 4096;
ring.tp_block_size = PAGE_SIZE;
ring.tp_block_nr = 1;
ring.tp_frame_size = 1024;
ring.tp_frame_nr = 4;
ring.tp_frame_nr = (ring.tp_block_size / ring.tp_frame_size) * ring.tp_block_nr;
if (setsockopt(sk1, SOL_PACKET, PACKET_RX_RING, &ring, sizeof(ring)) < 0) {
err("Can't set rx ring %m");
return 1;
......@@ -183,10 +183,10 @@ int main(int argc, char **argv)
}
memset(&ring, 0, sizeof(ring));
ring.tp_block_size = 4096;
ring.tp_block_size = PAGE_SIZE;
ring.tp_block_nr = 1;
ring.tp_frame_size = 1024;
ring.tp_frame_nr = 4;
ring.tp_frame_nr = (ring.tp_block_size / ring.tp_frame_size) * ring.tp_block_nr;
if (setsockopt(sk2, SOL_PACKET, PACKET_TX_RING, &ring, sizeof(ring)) < 0) {
err("Can't set tx ring %m");
return 1;
......
......@@ -69,26 +69,26 @@ int main(int argc, char **argv)
}
memset(&ring, 0, sizeof(ring));
ring.tp_block_size = 4096;
ring.tp_block_size = PAGE_SIZE;
ring.tp_block_nr = 1;
ring.tp_frame_size = 1024;
ring.tp_frame_nr = 4;
ring.tp_frame_nr = (ring.tp_block_size / ring.tp_frame_size) * ring.tp_block_nr;
if (setsockopt(sk, SOL_PACKET, PACKET_RX_RING, &ring, sizeof(ring)) < 0) {
err("Can't set rx ring %m");
return 1;
}
memset(&ring, 0, sizeof(ring));
ring.tp_block_size = 4096;
ring.tp_block_size = PAGE_SIZE;
ring.tp_block_nr = 1;
ring.tp_frame_size = 1024;
ring.tp_frame_nr = 4;
ring.tp_frame_nr = (ring.tp_block_size / ring.tp_frame_size) * ring.tp_block_nr;
if (setsockopt(sk, SOL_PACKET, PACKET_TX_RING, &ring, sizeof(ring)) < 0) {
err("Can't set tx ring %m");
return 1;
}
mem = mmap(NULL, 2 * 4096, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FILE, sk, 0);
mem = mmap(NULL, 2 * PAGE_SIZE, PROT_READ | PROT_WRITE, MAP_PRIVATE | MAP_FILE, sk, 0);
if (mem == MAP_FAILED) {
err("Can't mmap socket %m");
return 1;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment