         
         double bw = (blocks * blockSize) / time;
 
-        fprintf(stdout, " %5x; %8u; %12zu; %12.3f; %12.3f;\n",
-                queue->no, t.commands, t.blocks, time, bw);
+        fprintf(stdout, " %5x; %6s; %4s; %13s; %8zu; %8u; %12zu; %12.3f; %12.3f;\n",
+                queue->no, local ? "local" : "remote", gpu ? "gpu" : "ram", patternPtr,
+                queue->depth, t.commands, t.blocks, time, bw);
     }
 }
 

    std::sort(data.begin(), data.end(), std::greater<double>());
    std::reverse(data.begin(), data.end());

    for (auto p: {.99, .97, .95, .90, .75, .50, .25})
    {
        fprintf(stderr, "%4.2f: %14.3f\n", p, percentile(data, p));
    }
}

static void printStats(const QueuePtr& queue, const Times& times, size_t blockSize, bool header)
{

    if (header)
    {
        fprintf(stdout, "#%5s; %8s; %12s; %12s; %12s;\n",
                "queue", "cmds", "blocks", "lat", "bw");
    }
    for (const auto& t: times)
    {
        auto time = t.time.count();

        results.push_back(t.time.count());
    }
}


static void benchmark(const QueueList& queues, const DmaPtr& buffer, const Settings& settings, size_t blockSize)
