I decided to do a massive snoop session as I brought 2 DSes online with 2 storage pools each. I wanted to see the transactions go across the wire. Then I found out that snoop doesn't know about our control protocol. Guess what I'm working on now?
Anyway, I have a special kernel that just sends along the new ds_path information - no spe. I decided I could at least look in the kernel and see what I had:
> ::walk mds_DS_guid_entry_cache | ::print struct rfs4_dbe data | ::print -a ds_guid_info_t
{
ffffff0315aebc18 dbe = 0xffffff0315aebba8
ffffff0315aebc20 ds_ownerp = 0xffffff0315aede48
ffffff0315aebc28 ds_guid_next = {
ffffff0315aebc28 list_next = 0
ffffff0315aebc30 list_prev = 0
}
ffffff0315aebc38 ds_guid = {
ffffff0315aebc38 stor_type = 1 (ZFS)
ffffff0315aebc40 ds_guid_u = {
ffffff0315aebc40 zfsguid = {
ffffff0315aebc40 zfsguid_len = 0x10
ffffff0315aebc48 zfsguid_val = 0xffffff02f0d4aca8
}
}
}
ffffff0315aebc50 ds_attr_len = 0
ffffff0315aebc58 ds_attr_val = 0
ffffff0315aebc60 ds_path = {
ffffff0315aebc60 utf8string_len = 0
ffffff0315aebc68 utf8string_val = 0
}
}
{
ffffff0315aebd10 dbe = 0xffffff0315aebca0
ffffff0315aebd18 ds_ownerp = 0xffffff0315aede48
ffffff0315aebd20 ds_guid_next = {
ffffff0315aebd20 list_next = 0
ffffff0315aebd28 list_prev = 0
}
ffffff0315aebd30 ds_guid = {
ffffff0315aebd30 stor_type = 1 (ZFS)
ffffff0315aebd38 ds_guid_u = {
ffffff0315aebd38 zfsguid = {
ffffff0315aebd38 zfsguid_len = 0x10
ffffff0315aebd40 zfsguid_val = 0xffffff02f0c9f1c0
}
}
}
ffffff0315aebd48 ds_attr_len = 0
ffffff0315aebd50 ds_attr_val = 0
ffffff0315aebd58 ds_path = {
ffffff0315aebd58 utf8string_len = 0
ffffff0315aebd60 utf8string_val = 0
}
}
{
ffffff0315aebe08 dbe = 0xffffff0315aebd98
ffffff0315aebe10 ds_ownerp = 0xffffff0315aedf58
ffffff0315aebe18 ds_guid_next = {
ffffff0315aebe18 list_next = 0
ffffff0315aebe20 list_prev = 0
}
ffffff0315aebe28 ds_guid = {
ffffff0315aebe28 stor_type = 1 (ZFS)
ffffff0315aebe30 ds_guid_u = {
ffffff0315aebe30 zfsguid = {
ffffff0315aebe30 zfsguid_len = 0x10
ffffff0315aebe38 zfsguid_val = 0xffffff02f0c9f0a8
}
}
}
ffffff0315aebe40 ds_attr_len = 0
ffffff0315aebe48 ds_attr_val = 0
ffffff0315aebe50 ds_path = {
ffffff0315aebe50 utf8string_len = 0
ffffff0315aebe58 utf8string_val = 0
}
}
{
ffffff0315aebf00 dbe = 0xffffff0315aebe90
ffffff0315aebf08 ds_ownerp = 0xffffff0315aedf58
ffffff0315aebf10 ds_guid_next = {
ffffff0315aebf10 list_next = 0
ffffff0315aebf18 list_prev = 0
}
ffffff0315aebf20 ds_guid = {
ffffff0315aebf20 stor_type = 1 (ZFS)
ffffff0315aebf28 ds_guid_u = {
ffffff0315aebf28 zfsguid = {
ffffff0315aebf28 zfsguid_len = 0x10
ffffff0315aebf30 zfsguid_val = 0xffffff02f398d790
}
}
}
ffffff0315aebf38 ds_attr_len = 0
ffffff0315aebf40 ds_attr_val = 0
ffffff0315aebf48 ds_path = {
ffffff0315aebf48 utf8string_len = 0
ffffff0315aebf50 utf8string_val = 0
}
}
>
And no path strings. At least I have 4 entries, which I was expecting!