Cathy Zhou wrote:
>> now the domU hangs during boot with the following command:
>> /sbin/ifconfig rtls0 plumb
>>
>>
>> here's the interface that softmac_hold_device() is trying to lookup:
>> ---8<---
>> [0]> d5fe366c$c2
>> ...
>> mod_hash_find+0x22(d58fa900, d5fe37d0)
>> ...
>> [0]> d5fe37d0/s
>> 0xd5fe37d0: rtls0
>> ---8<---
>>
>> and here's the contents of softmac_hash:
>> ---8<---
>> [0]> *softmac_hash::walk modent | ::modent -v | ::print softmac_t
>> smac_devname
>> smac_devname = [ "rtls1" ]
>> ---8<---
>>
>> so it really doesn't seem like we'll ever be comming out of this loop.
>> it's worth mentioning that the rtls interface in the domU used to
>> be rtls0, hence the existance of a /etc/hostname.rtls0 file and
>> the ifconfig command during boot. but now the instance number of
>> the rtls interface has changed. this change is also reflected in
>> prtconf:
>> ---8<---
>> [0]> d31e8e28::prtconf
>> DEVINFO NAME
>> d31ece20 i86pc (driver name: rootnex)
>> d31eca48 pci, instance #0 (driver name: pci)
>> d31e8e28 pci10ec,8139, instance #1 (driver name: rtls)
>> ---8<---
>>
>> so it seems like there might be multiple bugs:
>>
>> - we're stuck in an infinite loop in softmac_hold_device()
>> (so either this function or it's callers are broken)
>>
>> - for some reason bfu'ing the domain resulted in the rtls
>> interface instance number changing.
>>
> I am not sure about the second issue and I don't think that is Clearview
> related. But I
> have some thoughts on the first issue.
>
> In softmac_hold_device(), we first tried to hold the rtls0 device and it
> succeeded:
>
> if ((dip = ddi_hold_devi_by_instance(getmajor(dev), ppa, 0)) == NULL)
> return (ENOENT);
>
> That is why it is spinning to find the rtls0 in softmac_hash. Based on my
> read of the
> problem, there is only one rtls device instance, which was "rtls1" and after
> reboot it
> changed to "rtls0". If so, it is strange to see "rtls1" but no "rtls0" in the
> softmac_hash. There is something wrong there.
>
I had another look. Ed said that the rtls device used to be rtls0 and now it is
changed to
rtls1. Therefore, the rtls1 in the softmac_hash is expected.
Then the question becomes, why the following check in softmac_hold_device()
succeeded?
if ((dip = ddi_hold_devi_by_instance(getmajor(dev), ppa, 0)) == NULL)
return (ENOENT);
Thanks
- Cathy
> May I have the access to the system so that I can take a look what goes wrong?
>
> Thanks
> - Cathy
>
> _________________________________
> clearview-discuss mailing list
> clearview-discuss at opensolaris.org