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


Reply via email to