pcp
[Top] [All Lists]

pcp linux pmda support for NVME devices

To: pcp@xxxxxxxxxxx
Subject: pcp linux pmda support for NVME devices
From: "Nelson, Doug" <doug.nelson@xxxxxxxxx>
Date: Wed, 7 Oct 2015 11:40:31 -0700
Cc: "Kadu, Suruchi A" <suruchi.a.kadu@xxxxxxxxx>
Delivered-to: pcp@xxxxxxxxxxx
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.3.0
Hi PCP folks,

We've been testing NVME storage for a while now, and found that the linux pmda was not recognizing the difference between a device and a partition for NVME devices. Â The NVME devices were missing from disk.dev, but both the disks and partitions would show up under disk.partitions.

Since I can hardly write hello.c anymore, Suruchi Kadu, one of my teammates wrote this patch to try to add nvme devices to disk.dev. Â Seems to work for us. Â Can you either add this patch, or something functionally equivalent? ÂÂÂ

Here's a little tutorial about NVME device naming just in case you don't have any yet.

The NVME device will have the format nvmeXn1, while the partitions will look like nvmeXn1pY

Here's a system with 16 NVME devices:
$ ls -1l /dev/nvme*n1ÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂÂ Â
brw-rw---- 1 oracle dba 259, 155 Oct 7 10:02 /dev/nvme0n1 Â
brw-rw---- 1 oracle dba 259, 1515 Oct 7 10:03 /dev/nvme10n1
brw-rw---- 1 oracle dba 259, 1304 Oct 7 10:03 /dev/nvme11n1
brw-rw---- 1 oracle dba 259, 1528 Oct 7 10:03 /dev/nvme12n1
brw-rw---- 1 oracle dba 259, 1298 Oct 7 10:03 /dev/nvme13n1
brw-rw---- 1 oracle dba 259, 1220 Oct 7 10:03 /dev/nvme14n1
brw-rw---- 1 oracle dba 259, 1221 Oct 7 10:03 /dev/nvme15n1
brw-rw---- 1 oracle dba 259, 1046 Oct 7 10:02 /dev/nvme1n1 Â
brw-rw---- 1 oracle dba 259, 11 Oct 7 10:02 /dev/nvme2n1 Â
brw-rw---- 1 oracle dba 259, 6 Oct 7 10:02 /dev/nvme3n1 Â
brw-rw---- 1 oracle dba 259, 1 Oct 7 10:02 /dev/nvme4n1 Â
brw-rw---- 1 oracle dba 259, 0 Oct 7 10:02 /dev/nvme5n1 Â
brw-rw---- 1 oracle dba 259, 8 Oct 7 10:02 /dev/nvme6n1 Â
brw-rw---- 1 oracle dba 259, 9 Oct 7 10:02 /dev/nvme7n1 Â
brw-rw---- 1 oracle dba 259, 1299 Oct 7 10:03 /dev/nvme8n1 Â
brw-rw---- 1 oracle dba 259, 1542 Oct 7 10:03 /dev/nvme9n1Â


Here's an example of a single nvme device with lots of partitions:

Any nvme character devices are only used by the driver to send admin commands:
$ ls -1l /dev/nvme0
crw-rw---- 1 oracle dba 248, 0 Oct 7 10:02 /dev/nvme0

This is the whole device: (want this to show up under disk.dev)
brw-rw---- 1 oracle dba 259, 155 Oct 7 10:02 /dev/nvme0n1ÂÂÂ

Here are all the partitions: (anything that is nvme*p* is a partition)
brw-rw---- 1 oracle dba 259, 2612 Oct 7 10:02 /dev/nvme0n1p1
brw-rw---- 1 oracle dba 259, 2621 Oct 7 10:02 /dev/nvme0n1p10
brw-rw---- 1 oracle dba 259, 2711 Oct 7 10:02 /dev/nvme0n1p100
brw-rw---- 1 oracle dba 259, 2712 Oct 7 10:02 /dev/nvme0n1p101
brw-rw---- 1 oracle dba 259, 2713 Oct 7 10:02 /dev/nvme0n1p102
brw-rw---- 1 oracle dba 259, 2714 Oct 7 10:02 /dev/nvme0n1p103
brw-rw---- 1 oracle dba 259, 2715 Oct 7 10:02 /dev/nvme0n1p104
brw-rw---- 1 oracle dba 259, 2716 Oct 7 10:02 /dev/nvme0n1p105
brw-rw---- 1 oracle dba 259, 2717 Oct 7 10:02 /dev/nvme0n1p106
brw-rw---- 1 oracle dba 259, 2718 Oct 7 10:02 /dev/nvme0n1p107
brw-rw---- 1 oracle dba 259, 2719 Oct 7 10:02 /dev/nvme0n1p108
brw-rw---- 1 oracle dba 259, 2720 Oct 7 10:02 /dev/nvme0n1p109
brw-rw---- 1 oracle dba 259, 2622 Oct 7 10:02 /dev/nvme0n1p11
brw-rw---- 1 oracle dba 259, 2721 Oct 7 10:02 /dev/nvme0n1p110
brw-rw---- 1 oracle dba 259, 2722 Oct 7 10:02 /dev/nvme0n1p111
brw-rw---- 1 oracle dba 259, 2723 Oct 7 10:02 /dev/nvme0n1p112
brw-rw---- 1 oracle dba 259, 2724 Oct 7 10:02 /dev/nvme0n1p113
brw-rw---- 1 oracle dba 259, 2725 Oct 7 10:02 /dev/nvme0n1p114
brw-rw---- 1 oracle dba 259, 2726 Oct 7 10:02 /dev/nvme0n1p115
brw-rw---- 1 oracle dba 259, 2727 Oct 7 10:30 /dev/nvme0n1p116
brw-rw---- 1 oracle dba 259, 2728 Oct 7 10:30 /dev/nvme0n1p117
brw-rw---- 1 oracle dba 259, 2729 Oct 7 10:25 /dev/nvme0n1p118
brw-rw---- 1 oracle dba 259, 2730 Oct 7 10:30 /dev/nvme0n1p119
brw-rw---- 1 oracle dba 259, 2623 Oct 7 10:02 /dev/nvme0n1p12
brw-rw---- 1 oracle dba 259, 2731 Oct 7 10:25 /dev/nvme0n1p120
brw-rw---- 1 oracle dba 259, 2732 Oct 7 10:02 /dev/nvme0n1p121
brw-rw---- 1 oracle dba 259, 2733 Oct 7 10:02 /dev/nvme0n1p122
brw-rw---- 1 oracle dba 259, 2734 Oct 7 10:02 /dev/nvme0n1p123
brw-rw---- 1 oracle dba 259, 2735 Oct 7 10:02 /dev/nvme0n1p124
brw-rw---- 1 oracle dba 259, 2736 Oct 7 10:02 /dev/nvme0n1p125
brw-rw---- 1 oracle dba 259, 2737 Oct 7 10:02 /dev/nvme0n1p126
brw-rw---- 1 oracle dba 259, 2738 Oct 7 10:02 /dev/nvme0n1p127
brw-rw---- 1 oracle dba 259, 2739 Oct 7 10:02 /dev/nvme0n1p128
brw-rw---- 1 oracle dba 259, 2740 Oct 7 10:02 /dev/nvme0n1p129
brw-rw---- 1 oracle dba 259, 2624 Oct 7 10:02 /dev/nvme0n1p13
brw-rw---- 1 oracle dba 259, 2741 Oct 7 10:02 /dev/nvme0n1p130
brw-rw---- 1 oracle dba 259, 2742 Oct 7 10:02 /dev/nvme0n1p131
brw-rw---- 1 oracle dba 259, 2743 Oct 7 10:02 /dev/nvme0n1p132
brw-rw---- 1 oracle dba 259, 2744 Oct 7 10:02 /dev/nvme0n1p133
brw-rw---- 1 oracle dba 259, 2745 Oct 7 10:02 /dev/nvme0n1p134
brw-rw---- 1 oracle dba 259, 2746 Oct 7 10:02 /dev/nvme0n1p135
brw-rw---- 1 oracle dba 259, 2747 Oct 7 10:02 /dev/nvme0n1p136
brw-rw---- 1 oracle dba 259, 2748 Oct 7 10:02 /dev/nvme0n1p137
brw-rw---- 1 oracle dba 259, 2749 Oct 7 10:02 /dev/nvme0n1p138
brw-rw---- 1 oracle dba 259, 2750 Oct 7 10:02 /dev/nvme0n1p139
brw-rw---- 1 oracle dba 259, 2625 Oct 7 10:02 /dev/nvme0n1p14
brw-rw---- 1 oracle dba 259, 2751 Oct 7 10:02 /dev/nvme0n1p140
brw-rw---- 1 oracle dba 259, 2752 Oct 7 10:02 /dev/nvme0n1p141
brw-rw---- 1 oracle dba 259, 2753 Oct 7 10:02 /dev/nvme0n1p142
brw-rw---- 1 oracle dba 259, 2754 Oct 7 10:02 /dev/nvme0n1p143
brw-rw---- 1 oracle dba 259, 2755 Oct 7 10:02 /dev/nvme0n1p144
brw-rw---- 1 oracle dba 259, 2756 Oct 7 10:02 /dev/nvme0n1p145
brw-rw---- 1 oracle dba 259, 2757 Oct 7 10:02 /dev/nvme0n1p146
brw-rw---- 1 oracle dba 259, 2758 Oct 7 10:02 /dev/nvme0n1p147
brw-rw---- 1 oracle dba 259, 2759 Oct 7 10:02 /dev/nvme0n1p148
brw-rw---- 1 oracle dba 259, 2760 Oct 7 10:02 /dev/nvme0n1p149
brw-rw---- 1 oracle dba 259, 2626 Oct 7 10:02 /dev/nvme0n1p15
brw-rw---- 1 oracle dba 259, 2761 Oct 7 10:02 /dev/nvme0n1p150
brw-rw---- 1 oracle dba 259, 2762 Oct 7 10:02 /dev/nvme0n1p151
brw-rw---- 1 oracle dba 259, 2763 Oct 7 10:02 /dev/nvme0n1p152
brw-rw---- 1 oracle dba 259, 2764 Oct 7 10:02 /dev/nvme0n1p153
brw-rw---- 1 oracle dba 259, 2765 Oct 7 10:02 /dev/nvme0n1p154
brw-rw---- 1 oracle dba 259, 2766 Oct 7 10:02 /dev/nvme0n1p155
brw-rw---- 1 oracle dba 259, 2767 Oct 7 10:02 /dev/nvme0n1p156
brw-rw---- 1 oracle dba 259, 2768 Oct 7 10:02 /dev/nvme0n1p157
brw-rw---- 1 oracle dba 259, 2769 Oct 7 10:02 /dev/nvme0n1p158
brw-rw---- 1 oracle dba 259, 2770 Oct 7 10:02 /dev/nvme0n1p159
brw-rw---- 1 oracle dba 259, 2627 Oct 7 10:02 /dev/nvme0n1p16
brw-rw---- 1 oracle dba 259, 2771 Oct 7 10:02 /dev/nvme0n1p160
brw-rw---- 1 oracle dba 259, 2772 Oct 7 10:02 /dev/nvme0n1p161
brw-rw---- 1 oracle dba 259, 2773 Oct 7 10:02 /dev/nvme0n1p162
brw-rw---- 1 oracle dba 259, 2774 Oct 7 10:02 /dev/nvme0n1p163
brw-rw---- 1 oracle dba 259, 2775 Oct 7 10:02 /dev/nvme0n1p164
brw-rw---- 1 oracle dba 259, 2776 Oct 7 10:02 /dev/nvme0n1p165
brw-rw---- 1 oracle dba 259, 2777 Oct 7 10:02 /dev/nvme0n1p166
brw-rw---- 1 oracle dba 259, 2778 Oct 7 10:02 /dev/nvme0n1p167
brw-rw---- 1 oracle dba 259, 2779 Oct 7 10:02 /dev/nvme0n1p168
brw-rw---- 1 oracle dba 259, 2780 Oct 7 10:02 /dev/nvme0n1p169
brw-rw---- 1 oracle dba 259, 2628 Oct 7 10:02 /dev/nvme0n1p17
brw-rw---- 1 oracle dba 259, 2781 Oct 7 10:02 /dev/nvme0n1p170
brw-rw---- 1 oracle dba 259, 2782 Oct 7 10:20 /dev/nvme0n1p171
brw-rw---- 1 oracle dba 259, 2783 Oct 7 10:02 /dev/nvme0n1p172
brw-rw---- 1 oracle dba 259, 2784 Oct 7 10:02 /dev/nvme0n1p173
brw-rw---- 1 oracle dba 259, 2629 Oct 7 10:02 /dev/nvme0n1p18
brw-rw---- 1 oracle dba 259, 2630 Oct 7 10:02 /dev/nvme0n1p19
brw-rw---- 1 oracle dba 259, 2613 Oct 7 10:02 /dev/nvme0n1p2
brw-rw---- 1 oracle dba 259, 2631 Oct 7 10:02 /dev/nvme0n1p20
brw-rw---- 1 oracle dba 259, 2632 Oct 7 10:02 /dev/nvme0n1p21
brw-rw---- 1 oracle dba 259, 2633 Oct 7 10:02 /dev/nvme0n1p22
brw-rw---- 1 oracle dba 259, 2634 Oct 7 10:02 /dev/nvme0n1p23
brw-rw---- 1 oracle dba 259, 2635 Oct 7 10:02 /dev/nvme0n1p24
brw-rw---- 1 oracle dba 259, 2636 Oct 7 10:02 /dev/nvme0n1p25
brw-rw---- 1 oracle dba 259, 2637 Oct 7 10:02 /dev/nvme0n1p26
brw-rw---- 1 oracle dba 259, 2638 Oct 7 10:02 /dev/nvme0n1p27
brw-rw---- 1 oracle dba 259, 2639 Oct 7 10:02 /dev/nvme0n1p28
brw-rw---- 1 oracle dba 259, 2640 Oct 7 10:02 /dev/nvme0n1p29
brw-rw---- 1 oracle dba 259, 2614 Oct 7 10:02 /dev/nvme0n1p3
brw-rw---- 1 oracle dba 259, 2641 Oct 7 10:02 /dev/nvme0n1p30
brw-rw---- 1 oracle dba 259, 2642 Oct 7 10:02 /dev/nvme0n1p31
brw-rw---- 1 oracle dba 259, 2643 Oct 7 10:02 /dev/nvme0n1p32
brw-rw---- 1 oracle dba 259, 2644 Oct 7 10:02 /dev/nvme0n1p33
brw-rw---- 1 oracle dba 259, 2645 Oct 7 10:02 /dev/nvme0n1p34
brw-rw---- 1 oracle dba 259, 2646 Oct 7 10:02 /dev/nvme0n1p35
brw-rw---- 1 oracle dba 259, 2647 Oct 7 10:02 /dev/nvme0n1p36
brw-rw---- 1 oracle dba 259, 2648 Oct 7 10:02 /dev/nvme0n1p37
brw-rw---- 1 oracle dba 259, 2649 Oct 7 10:02 /dev/nvme0n1p38
brw-rw---- 1 oracle dba 259, 2650 Oct 7 10:02 /dev/nvme0n1p39
brw-rw---- 1 oracle dba 259, 2615 Oct 7 10:02 /dev/nvme0n1p4
brw-rw---- 1 oracle dba 259, 2651 Oct 7 10:02 /dev/nvme0n1p40
brw-rw---- 1 oracle dba 259, 2652 Oct 7 10:02 /dev/nvme0n1p41
brw-rw---- 1 oracle dba 259, 2653 Oct 7 10:02 /dev/nvme0n1p42
brw-rw---- 1 oracle dba 259, 2654 Oct 7 10:02 /dev/nvme0n1p43
brw-rw---- 1 oracle dba 259, 2655 Oct 7 10:02 /dev/nvme0n1p44
brw-rw---- 1 oracle dba 259, 2656 Oct 7 10:02 /dev/nvme0n1p45
brw-rw---- 1 oracle dba 259, 2657 Oct 7 10:02 /dev/nvme0n1p46
brw-rw---- 1 oracle dba 259, 2658 Oct 7 10:02 /dev/nvme0n1p47
brw-rw---- 1 oracle dba 259, 2659 Oct 7 10:02 /dev/nvme0n1p48
brw-rw---- 1 oracle dba 259, 2660 Oct 7 10:02 /dev/nvme0n1p49
brw-rw---- 1 oracle dba 259, 2616 Oct 7 10:02 /dev/nvme0n1p5
brw-rw---- 1 oracle dba 259, 2661 Oct 7 10:02 /dev/nvme0n1p50
brw-rw---- 1 oracle dba 259, 2662 Oct 7 10:02 /dev/nvme0n1p51
brw-rw---- 1 oracle dba 259, 2663 Oct 7 10:02 /dev/nvme0n1p52
brw-rw---- 1 oracle dba 259, 2664 Oct 7 10:02 /dev/nvme0n1p53
brw-rw---- 1 oracle dba 259, 2665 Oct 7 10:02 /dev/nvme0n1p54
brw-rw---- 1 oracle dba 259, 2666 Oct 7 10:02 /dev/nvme0n1p55
brw-rw---- 1 oracle dba 259, 2667 Oct 7 10:02 /dev/nvme0n1p56
brw-rw---- 1 oracle dba 259, 2668 Oct 7 10:02 /dev/nvme0n1p57
brw-rw---- 1 oracle dba 259, 2669 Oct 7 10:02 /dev/nvme0n1p58
brw-rw---- 1 oracle dba 259, 2670 Oct 7 10:02 /dev/nvme0n1p59
brw-rw---- 1 oracle dba 259, 2617 Oct 7 10:02 /dev/nvme0n1p6
brw-rw---- 1 oracle dba 259, 2671 Oct 7 10:02 /dev/nvme0n1p60
brw-rw---- 1 oracle dba 259, 2672 Oct 7 10:25 /dev/nvme0n1p61
brw-rw---- 1 oracle dba 259, 2673 Oct 7 10:02 /dev/nvme0n1p62
brw-rw---- 1 oracle dba 259, 2674 Oct 7 10:02 /dev/nvme0n1p63
brw-rw---- 1 oracle dba 259, 2675 Oct 7 10:02 /dev/nvme0n1p64
brw-rw---- 1 oracle dba 259, 2676 Oct 7 10:02 /dev/nvme0n1p65
brw-rw---- 1 oracle dba 259, 2677 Oct 7 10:30 /dev/nvme0n1p66
brw-rw---- 1 oracle dba 259, 2678 Oct 7 10:25 /dev/nvme0n1p67
brw-rw---- 1 oracle dba 259, 2679 Oct 7 10:02 /dev/nvme0n1p68
brw-rw---- 1 oracle dba 259, 2680 Oct 7 10:02 /dev/nvme0n1p69
brw-rw---- 1 oracle dba 259, 2618 Oct 7 10:02 /dev/nvme0n1p7
brw-rw---- 1 oracle dba 259, 2681 Oct 7 10:02 /dev/nvme0n1p70
brw-rw---- 1 oracle dba 259, 2682 Oct 7 10:02 /dev/nvme0n1p71
brw-rw---- 1 oracle dba 259, 2683 Oct 7 10:02 /dev/nvme0n1p72
brw-rw---- 1 oracle dba 259, 2684 Oct 7 10:02 /dev/nvme0n1p73
brw-rw---- 1 oracle dba 259, 2685 Oct 7 10:02 /dev/nvme0n1p74
brw-rw---- 1 oracle dba 259, 2686 Oct 7 10:02 /dev/nvme0n1p75
brw-rw---- 1 oracle dba 259, 2687 Oct 7 10:02 /dev/nvme0n1p76
brw-rw---- 1 oracle dba 259, 2688 Oct 7 10:02 /dev/nvme0n1p77
brw-rw---- 1 oracle dba 259, 2689 Oct 7 10:02 /dev/nvme0n1p78
brw-rw---- 1 oracle dba 259, 2690 Oct 7 10:02 /dev/nvme0n1p79
brw-rw---- 1 oracle dba 259, 2619 Oct 7 10:02 /dev/nvme0n1p8
brw-rw---- 1 oracle dba 259, 2691 Oct 7 10:02 /dev/nvme0n1p80
brw-rw---- 1 oracle dba 259, 2692 Oct 7 10:02 /dev/nvme0n1p81
brw-rw---- 1 oracle dba 259, 2693 Oct 7 10:02 /dev/nvme0n1p82
brw-rw---- 1 oracle dba 259, 2694 Oct 7 10:02 /dev/nvme0n1p83
brw-rw---- 1 oracle dba 259, 2695 Oct 7 10:02 /dev/nvme0n1p84
brw-rw---- 1 oracle dba 259, 2696 Oct 7 10:02 /dev/nvme0n1p85
brw-rw---- 1 oracle dba 259, 2697 Oct 7 10:02 /dev/nvme0n1p86
brw-rw---- 1 oracle dba 259, 2698 Oct 7 10:02 /dev/nvme0n1p87
brw-rw---- 1 oracle dba 259, 2699 Oct 7 10:02 /dev/nvme0n1p88
brw-rw---- 1 oracle dba 259, 2700 Oct 7 10:02 /dev/nvme0n1p89
brw-rw---- 1 oracle dba 259, 2620 Oct 7 10:02 /dev/nvme0n1p9
brw-rw---- 1 oracle dba 259, 2701 Oct 7 10:02 /dev/nvme0n1p90
brw-rw---- 1 oracle dba 259, 2702 Oct 7 10:02 /dev/nvme0n1p91
brw-rw---- 1 oracle dba 259, 2703 Oct 7 10:02 /dev/nvme0n1p92
brw-rw---- 1 oracle dba 259, 2704 Oct 7 10:02 /dev/nvme0n1p93
brw-rw---- 1 oracle dba 259, 2705 Oct 7 10:02 /dev/nvme0n1p94
brw-rw---- 1 oracle dba 259, 2706 Oct 7 10:02 /dev/nvme0n1p95
brw-rw---- 1 oracle dba 259, 2707 Oct 7 10:02 /dev/nvme0n1p96
brw-rw---- 1 oracle dba 259, 2708 Oct 7 10:02 /dev/nvme0n1p97
brw-rw---- 1 oracle dba 259, 2709 Oct 7 10:02 /dev/nvme0n1p98
brw-rw---- 1 oracle dba 259, 2710 Oct 7 10:02 /dev/nvme0n1p99

thanks,

doug

Attachment: linux_pmda_nvme.patch
Description: Text Data

<Prev in Thread] Current Thread [Next in Thread>