Lines Matching +full:aux +full:- +full:bus

1 // SPDX-License-Identifier: GPL-2.0-only
25 /* Reserve space for rb, aux with space for shrink-beyond-vma testing. */
32 #define EVENT_SRC_DIR "/sys/bus/event_source/devices"
43 bool aux; in FIXTURE_VARIANT() local
49 .aux = false, in FIXTURE_VARIANT_ADD()
53 FIXTURE_VARIANT_ADD(perf_mmap, aux) in FIXTURE_VARIANT_ADD() argument
55 .aux = true, in FIXTURE_VARIANT_ADD()
65 snprintf(typefn, sizeof(typefn), "%s/%s/type", EVENT_SRC_DIR, dent->d_name); in read_event_type()
87 void *aux, *region; in FIXTURE_SETUP() local
90 self->ptr = NULL; in FIXTURE_SETUP()
96 region = mmap(NULL, REGION_SIZE, PROT_NONE, MAP_ANON | MAP_PRIVATE, -1, 0); in FIXTURE_SETUP()
98 self->region = region; in FIXTURE_SETUP()
107 fd = syscall(SYS_perf_event_open, &attr, 0, -1, -1, 0); in FIXTURE_SETUP()
122 // Save the event in case that no AUX capable event is found in FIXTURE_SETUP()
127 if (!variant->aux) in FIXTURE_SETUP()
130 rb->aux_offset = AUX_OFFS; in FIXTURE_SETUP()
131 rb->aux_size = AUX_SIZE; in FIXTURE_SETUP()
133 // Check whether it supports a AUX buffer in FIXTURE_SETUP()
134 aux = mmap(region + REGION_AUX_OFFS, AUX_SIZE, PROT_READ | PROT_WRITE, in FIXTURE_SETUP()
136 if (aux == MAP_FAILED) { in FIXTURE_SETUP()
144 munmap(aux, AUX_SIZE); in FIXTURE_SETUP()
158 self->fd = syscall(SYS_perf_event_open, &attr_ok, 0, -1, -1, 0); in FIXTURE_SETUP()
159 ASSERT_NE(self->fd, -1); in FIXTURE_SETUP()
161 rb = mmap(region, RB_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_FIXED, self->fd, 0); in FIXTURE_SETUP()
164 if (!variant->aux) { in FIXTURE_SETUP()
165 self->ptr = rb; in FIXTURE_SETUP()
170 SKIP(return, "No AUX event found."); in FIXTURE_SETUP()
172 rb->aux_offset = AUX_OFFS; in FIXTURE_SETUP()
173 rb->aux_size = AUX_SIZE; in FIXTURE_SETUP()
174 aux = mmap(region + REGION_AUX_OFFS, AUX_SIZE, PROT_READ | PROT_WRITE, in FIXTURE_SETUP()
175 MAP_SHARED | MAP_FIXED, self->fd, AUX_OFFS); in FIXTURE_SETUP()
176 ASSERT_NE(aux, MAP_FAILED); in FIXTURE_SETUP()
177 self->ptr = aux; in FIXTURE_SETUP()
182 ASSERT_EQ(munmap(self->region, REGION_SIZE), 0); in FIXTURE_TEARDOWN()
183 if (self->fd != -1) in FIXTURE_TEARDOWN()
184 ASSERT_EQ(close(self->fd), 0); in FIXTURE_TEARDOWN()
189 void *tmp, *ptr = self->ptr; in TEST_F()
190 unsigned long size = variant->ptr_size; in TEST_F()
195 ASSERT_EQ(mremap(ptr + size - HOLE_SIZE, HOLE_SIZE, size, MREMAP_MAYMOVE), MAP_FAILED); in TEST_F()
198 ASSERT_NE(mremap(ptr + size - HOLE_SIZE, size, HOLE_SIZE, MREMAP_MAYMOVE), MAP_FAILED); in TEST_F()
201 tmp = mmap(NULL, size, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_ANONYMOUS, -1, 0); in TEST_F()
205 ASSERT_EQ(mremap(ptr + HOLE_SIZE, size - HOLE_SIZE, size - HOLE_SIZE, in TEST_F()
215 unsigned long size = variant->ptr_size; in TEST_F()
218 ASSERT_NE(munmap(self->ptr, HOLE_SIZE), 0); in TEST_F()
219 ASSERT_NE(munmap(self->ptr + HOLE_SIZE, HOLE_SIZE), 0); in TEST_F()
220 ASSERT_NE(munmap(self->ptr + size - HOLE_SIZE, HOLE_SIZE), 0); in TEST_F()
225 unsigned long size = variant->ptr_size; in TEST_F()
228 ASSERT_EQ(mmap(self->ptr, HOLE_SIZE, PROT_READ | PROT_WRITE, in TEST_F()
229 MAP_PRIVATE | MAP_ANON | MAP_FIXED, -1, 0), MAP_FAILED); in TEST_F()
230 ASSERT_EQ(mmap(self->ptr + HOLE_SIZE, HOLE_SIZE, PROT_READ | PROT_WRITE, in TEST_F()
231 MAP_PRIVATE | MAP_ANON | MAP_FIXED, -1, 0), MAP_FAILED); in TEST_F()
232 ASSERT_EQ(mmap(self->ptr + size - HOLE_SIZE, HOLE_SIZE, PROT_READ | PROT_WRITE, in TEST_F()
233 MAP_PRIVATE | MAP_ANON | MAP_FIXED, -1, 0), MAP_FAILED); in TEST_F()