Re: [kvm-unit-tests PATCH 2/5] s390x: Switch to z/Arch if needed

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



>>
>>> +	/* Switch to z/Architecture mode (64-bit) */
>>> +	slr     %r0, %r0		# set cpuid to zero
>>> +	lhi     %r1, 2			# mode 2 = esame
>>> +	sigp    %r1, %r0, 0x12		# sigp set arch
>>> +	bras	%r13,0f
>>> +	.fill	16,4,0x0
>>> +0:	lmh	%r0,%r15,0(%r13)	# clear high-order half of gprs
>>
>> This is just what the kernel does. The ".fill" part is confusing at
>> first, but it is just the data loaded into the high-order halfs (all 0s)
>>
>> (I was told mixing code and data is bad practice, but for some reason
>> people in Linux decided to do it like that (maybe because of some
>> relocation thingy? or because of instruction set restrictions?))
> 
> Honestly I wouldn't even have considered clearing if I haven't seen it
> in the kernel. I could define a zero area at the end of the file or do
> an lm targeting the cleared bss right before jumping into setup. Or we
> could do 16 xc register to register :)

Or we'll just stick to what the kernel did here ... at least that way we
can be pretty sure we don't make mistakes. Whatever you prefer ;)

> 
>>
>> Should we introduce defines for SIGPs? We might have more once we
>> support multiple CPUs eiher way.
> 
> We also have sigp stop so why not.
> How about making the indent patch a cleanup patch and adding all
> commands there?

Sure, fine with me!


-- 

Thanks,

David / dhildenb



[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux