 c809bbc8e9
			
		
	
	
		c809bbc8e9
		
	
	
	
	
		
			
			The topology information are attributes of the CPU and are specified during the CPU device creation. On hot plug we: - calculate the default values for the topology for drawers, books and sockets in the case they are not specified. - verify the CPU attributes - check that we have still room on the desired socket The possibility to insert a CPU in a mask is dependent on the number of cores allowed in a socket, a book or a drawer, the checking is done during the hot plug of the CPU to have an immediate answer. If the complete topology is not specified, the core is added in the physical topology based on its core ID and it gets defaults values for the modifier attributes. This way, starting QEMU without specifying the topology can still get some advantage of the CPU topology. Signed-off-by: Pierre Morel <pmorel@linux.ibm.com> Reviewed-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Co-developed-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Reviewed-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Nina Schoetterl-Glausch <nsg@linux.ibm.com> Message-ID: <20231016183925.2384704-4-nsg@linux.ibm.com> Signed-off-by: Thomas Huth <thuth@redhat.com>
		
			
				
	
	
		
			61 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Meson
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Meson
		
	
	
	
	
	
| s390x_ss = ss.source_set()
 | |
| s390x_ss.add(files(
 | |
|   'ap-bridge.c',
 | |
|   'ap-device.c',
 | |
|   'ccw-device.c',
 | |
|   'css-bridge.c',
 | |
|   'css.c',
 | |
|   'event-facility.c',
 | |
|   'ipl.c',
 | |
|   's390-ccw.c',
 | |
|   's390-pci-bus.c',
 | |
|   's390-pci-inst.c',
 | |
|   's390-skeys.c',
 | |
|   's390-stattrib.c',
 | |
|   's390-virtio-hcall.c',
 | |
|   'sclp.c',
 | |
|   'sclpcpu.c',
 | |
|   'sclpquiesce.c',
 | |
|   'tod.c',
 | |
| ))
 | |
| s390x_ss.add(when: 'CONFIG_KVM', if_true: files(
 | |
|   'tod-kvm.c',
 | |
|   's390-skeys-kvm.c',
 | |
|   's390-stattrib-kvm.c',
 | |
|   's390-pci-kvm.c',
 | |
|   'cpu-topology.c',
 | |
| ))
 | |
| s390x_ss.add(when: 'CONFIG_TCG', if_true: files(
 | |
|   'tod-tcg.c',
 | |
| ))
 | |
| s390x_ss.add(when: 'CONFIG_S390_CCW_VIRTIO', if_true: files('s390-virtio-ccw.c'))
 | |
| s390x_ss.add(when: 'CONFIG_TERMINAL3270', if_true: files('3270-ccw.c'))
 | |
| s390x_ss.add(when: 'CONFIG_VFIO', if_true: files('s390-pci-vfio.c'))
 | |
| 
 | |
| virtio_ss = ss.source_set()
 | |
| virtio_ss.add(files('virtio-ccw.c'))
 | |
| virtio_ss.add(when: 'CONFIG_VIRTIO_BALLOON', if_true: files('virtio-ccw-balloon.c'))
 | |
| virtio_ss.add(when: 'CONFIG_VIRTIO_BLK', if_true: files('virtio-ccw-blk.c'))
 | |
| virtio_ss.add(when: 'CONFIG_VIRTIO_CRYPTO', if_true: files('virtio-ccw-crypto.c'))
 | |
| virtio_ss.add(when: 'CONFIG_VIRTIO_INPUT', if_true: files('virtio-ccw-input.c'))
 | |
| virtio_ss.add(when: 'CONFIG_VIRTIO_NET', if_true: files('virtio-ccw-net.c'))
 | |
| virtio_ss.add(when: 'CONFIG_VIRTIO_RNG', if_true: files('virtio-ccw-rng.c'))
 | |
| virtio_ss.add(when: 'CONFIG_VIRTIO_SCSI', if_true: files('virtio-ccw-scsi.c'))
 | |
| virtio_ss.add(when: 'CONFIG_VIRTIO_SERIAL', if_true: files('virtio-ccw-serial.c'))
 | |
| if have_virtfs
 | |
|   virtio_ss.add(when: 'CONFIG_VIRTIO_9P', if_true: files('virtio-ccw-9p.c'))
 | |
| endif
 | |
| virtio_ss.add(when: 'CONFIG_VHOST_SCSI', if_true: files('vhost-scsi-ccw.c'))
 | |
| virtio_ss.add(when: 'CONFIG_VHOST_VSOCK', if_true: files('vhost-vsock-ccw.c'))
 | |
| virtio_ss.add(when: 'CONFIG_VHOST_USER_FS', if_true: files('vhost-user-fs-ccw.c'))
 | |
| s390x_ss.add_all(when: 'CONFIG_VIRTIO_CCW', if_true: virtio_ss)
 | |
| 
 | |
| hw_arch += {'s390x': s390x_ss}
 | |
| 
 | |
| hw_s390x_modules = {}
 | |
| virtio_gpu_ccw_ss = ss.source_set()
 | |
| virtio_gpu_ccw_ss.add(when: ['CONFIG_VIRTIO_GPU', 'CONFIG_VIRTIO_CCW'],
 | |
|                       if_true: [files('virtio-ccw-gpu.c'), pixman])
 | |
| hw_s390x_modules += {'virtio-gpu-ccw': virtio_gpu_ccw_ss}
 | |
| modules += {'hw-s390x': hw_s390x_modules}
 |