• Home
  • Raw
  • Download

Lines Matching refs:map

61 	struct map_benchmark_data *map = data;  in map_benchmark_thread()  local
62 int npages = map->bparam.granule; in map_benchmark_thread()
81 if (map->dir != DMA_FROM_DEVICE) in map_benchmark_thread()
85 dma_addr = dma_map_single(map->dev, buf, size, map->dir); in map_benchmark_thread()
86 if (unlikely(dma_mapping_error(map->dev, dma_addr))) { in map_benchmark_thread()
88 dev_name(map->dev)); in map_benchmark_thread()
96 ndelay(map->bparam.dma_trans_ns); in map_benchmark_thread()
99 dma_unmap_single(map->dev, dma_addr, size, map->dir); in map_benchmark_thread()
110 atomic64_add(map_100ns, &map->sum_map_100ns); in map_benchmark_thread()
111 atomic64_add(unmap_100ns, &map->sum_unmap_100ns); in map_benchmark_thread()
112 atomic64_add(map_sq, &map->sum_sq_map); in map_benchmark_thread()
113 atomic64_add(unmap_sq, &map->sum_sq_unmap); in map_benchmark_thread()
114 atomic64_inc(&map->loops); in map_benchmark_thread()
122 static int do_map_benchmark(struct map_benchmark_data *map) in do_map_benchmark() argument
125 int threads = map->bparam.threads; in do_map_benchmark()
126 int node = map->bparam.node; in do_map_benchmark()
136 get_device(map->dev); in do_map_benchmark()
139 tsk[i] = kthread_create_on_node(map_benchmark_thread, map, in do_map_benchmark()
140 map->bparam.node, "dma-map-benchmark/%d", i); in do_map_benchmark()
152 atomic64_set(&map->sum_map_100ns, 0); in do_map_benchmark()
153 atomic64_set(&map->sum_unmap_100ns, 0); in do_map_benchmark()
154 atomic64_set(&map->sum_sq_map, 0); in do_map_benchmark()
155 atomic64_set(&map->sum_sq_unmap, 0); in do_map_benchmark()
156 atomic64_set(&map->loops, 0); in do_map_benchmark()
163 msleep_interruptible(map->bparam.seconds * 1000); in do_map_benchmark()
172 loops = atomic64_read(&map->loops); in do_map_benchmark()
175 u64 sum_map = atomic64_read(&map->sum_map_100ns); in do_map_benchmark()
176 u64 sum_unmap = atomic64_read(&map->sum_unmap_100ns); in do_map_benchmark()
177 u64 sum_sq_map = atomic64_read(&map->sum_sq_map); in do_map_benchmark()
178 u64 sum_sq_unmap = atomic64_read(&map->sum_sq_unmap); in do_map_benchmark()
181 map->bparam.avg_map_100ns = div64_u64(sum_map, loops); in do_map_benchmark()
182 map->bparam.avg_unmap_100ns = div64_u64(sum_unmap, loops); in do_map_benchmark()
186 map->bparam.avg_map_100ns * in do_map_benchmark()
187 map->bparam.avg_map_100ns; in do_map_benchmark()
189 map->bparam.avg_unmap_100ns * in do_map_benchmark()
190 map->bparam.avg_unmap_100ns; in do_map_benchmark()
191 map->bparam.map_stddev = int_sqrt64(map_variance); in do_map_benchmark()
192 map->bparam.unmap_stddev = int_sqrt64(unmap_variance); in do_map_benchmark()
198 put_device(map->dev); in do_map_benchmark()
206 struct map_benchmark_data *map = file->private_data; in map_benchmark_ioctl() local
211 if (copy_from_user(&map->bparam, argp, sizeof(map->bparam))) in map_benchmark_ioctl()
216 if (map->bparam.threads == 0 || in map_benchmark_ioctl()
217 map->bparam.threads > DMA_MAP_MAX_THREADS) { in map_benchmark_ioctl()
222 if (map->bparam.seconds == 0 || in map_benchmark_ioctl()
223 map->bparam.seconds > DMA_MAP_MAX_SECONDS) { in map_benchmark_ioctl()
228 if (map->bparam.dma_trans_ns > DMA_MAP_MAX_TRANS_DELAY) { in map_benchmark_ioctl()
233 if (map->bparam.node != NUMA_NO_NODE && in map_benchmark_ioctl()
234 !node_possible(map->bparam.node)) { in map_benchmark_ioctl()
239 if (map->bparam.granule < 1 || map->bparam.granule > 1024) { in map_benchmark_ioctl()
244 switch (map->bparam.dma_dir) { in map_benchmark_ioctl()
246 map->dir = DMA_BIDIRECTIONAL; in map_benchmark_ioctl()
249 map->dir = DMA_FROM_DEVICE; in map_benchmark_ioctl()
252 map->dir = DMA_TO_DEVICE; in map_benchmark_ioctl()
259 old_dma_mask = dma_get_mask(map->dev); in map_benchmark_ioctl()
261 ret = dma_set_mask(map->dev, in map_benchmark_ioctl()
262 DMA_BIT_MASK(map->bparam.dma_bits)); in map_benchmark_ioctl()
265 dev_name(map->dev)); in map_benchmark_ioctl()
269 ret = do_map_benchmark(map); in map_benchmark_ioctl()
277 dma_set_mask(map->dev, old_dma_mask); in map_benchmark_ioctl()
283 if (copy_to_user(argp, &map->bparam, sizeof(map->bparam))) in map_benchmark_ioctl()
296 struct map_benchmark_data *map = (struct map_benchmark_data *)data; in map_benchmark_remove_debugfs() local
298 debugfs_remove(map->debugfs); in map_benchmark_remove_debugfs()
304 struct map_benchmark_data *map; in __map_benchmark_probe() local
307 map = devm_kzalloc(dev, sizeof(*map), GFP_KERNEL); in __map_benchmark_probe()
308 if (!map) in __map_benchmark_probe()
310 map->dev = dev; in __map_benchmark_probe()
312 ret = devm_add_action(dev, map_benchmark_remove_debugfs, map); in __map_benchmark_probe()
322 entry = debugfs_create_file("dma_map_benchmark", 0600, NULL, map, in __map_benchmark_probe()
326 map->debugfs = entry; in __map_benchmark_probe()