when i run below code without remove code, it’s ok. but after removed first BDF in a thread there will be a error when reading DSP with setpci in other thread like:
setpci: Cannot open /sys/bus/pci/devices/bdf/resource: No such file or directory
I don’t konw why this happend since I only removed BDF and all I do with setpci is about DSP.
def read(dsp,bdf):
res=os.popen('sudo setpci -s '+dsp+' 0x3e.w').read().strip()
logging.info(threading.current_thread().name+' :'+res)
os.system('echo 1 > /sys/bus/pci/devices/'+bdf+'/remove')
time.sleep(1)
os.system('echo 1 > /sys/bus/pci/devices/'+dsp+'/rescan')
for i,bdf in enumerate(bdfs):
dsp=get_dsp(bdf)
threading.Thread(target=read,args=(dsp,bdf),name=bdf).start()
some log:
0000:0e:00.0 :0003
setpci: Cannot open /sys/bus/pci/devices/0000:0e:00.0/resource: No such file or directory
0000:0f:00.0 :
1