LCOV - code coverage report
Current view: top level - block - blk-mq-cpumap.c (source / functions) Hit Total Coverage
Test: coverage.info Lines: 0 12 0.0 %
Date: 2023-07-19 18:55:55 Functions: 0 2 0.0 %

          Line data    Source code
       1             : // SPDX-License-Identifier: GPL-2.0
       2             : /*
       3             :  * CPU <-> hardware queue mapping helpers
       4             :  *
       5             :  * Copyright (C) 2013-2014 Jens Axboe
       6             :  */
       7             : #include <linux/kernel.h>
       8             : #include <linux/threads.h>
       9             : #include <linux/module.h>
      10             : #include <linux/mm.h>
      11             : #include <linux/smp.h>
      12             : #include <linux/cpu.h>
      13             : #include <linux/group_cpus.h>
      14             : 
      15             : #include "blk.h"
      16             : #include "blk-mq.h"
      17             : 
      18           0 : void blk_mq_map_queues(struct blk_mq_queue_map *qmap)
      19             : {
      20             :         const struct cpumask *masks;
      21             :         unsigned int queue, cpu;
      22             : 
      23           0 :         masks = group_cpus_evenly(qmap->nr_queues);
      24           0 :         if (!masks) {
      25           0 :                 for_each_possible_cpu(cpu)
      26           0 :                         qmap->mq_map[cpu] = qmap->queue_offset;
      27             :                 return;
      28             :         }
      29             : 
      30           0 :         for (queue = 0; queue < qmap->nr_queues; queue++) {
      31           0 :                 for_each_cpu(cpu, &masks[queue])
      32           0 :                         qmap->mq_map[cpu] = qmap->queue_offset + queue;
      33             :         }
      34           0 :         kfree(masks);
      35             : }
      36             : EXPORT_SYMBOL_GPL(blk_mq_map_queues);
      37             : 
      38             : /**
      39             :  * blk_mq_hw_queue_to_node - Look up the memory node for a hardware queue index
      40             :  * @qmap: CPU to hardware queue map.
      41             :  * @index: hardware queue index.
      42             :  *
      43             :  * We have no quick way of doing reverse lookups. This is only used at
      44             :  * queue init time, so runtime isn't important.
      45             :  */
      46           0 : int blk_mq_hw_queue_to_node(struct blk_mq_queue_map *qmap, unsigned int index)
      47             : {
      48             :         int i;
      49             : 
      50           0 :         for_each_possible_cpu(i) {
      51           0 :                 if (index == qmap->mq_map[i])
      52             :                         return cpu_to_node(i);
      53             :         }
      54             : 
      55             :         return NUMA_NO_NODE;
      56             : }

Generated by: LCOV version 1.14