diff --git a/config/tests/guest/libvirt/L1.cfg b/config/tests/guest/libvirt/L1.cfg new file mode 100644 index 00000000..89c08c64 --- /dev/null +++ b/config/tests/guest/libvirt/L1.cfg @@ -0,0 +1,61 @@ +include tests-shared.cfg + +username = root +password = 123456 +main_vm = virt-tests-vm1 +vms = virt-tests-vm1 +#Network +nettype = bridge +netdst = virbr0 +display = nographic +vga = none +take_regular_screendumps = no +keep_screendumps_on_error = no +keep_screendumps = no +store_vm_register = no +virt_install_binary = /usr/bin/virt-install +qemu_img_binary = /usr/bin/qemu-img +hvm_or_pv = hvm +machine_type = pseries +only bridge +no xen, lxc, esx, ovmf +#Filterout unwanted disk types +no ide,xenblk,lsi_scsi,ahci,sd +no qed,qcow2v3,raw_dd,vmdk, usb2 +no e1000-82540em,e1000-82545em,e1000-82544gc,xennet,nic_custom +only no_virtio_rng +only smp2 +only no_9p_export +only no_pci_assignable +only (image_backend=filesystem) +only smallpages +smp = 144 +vcpu_cores = 18 +vcpu_threads = 8 +vcpu_sockets = 1 +mem = 131072 +only virtio_net +only qcow2 +only virtio_scsi +# User can change the disk as per need +image_size = 50G +create_vm_libvirt=yes +kill_vm_libvirt=yes +kill_vm=yes +env_cleanup=yes +backup_image_before_testing=no +restore_image_after_testing=no +kernel_args='root=/dev/sda2 rw console=tty0 console=ttyS0,115200 init=/sbin/init initcall_debug selinux=0' +qemu_binary=/usr/local/lib/python3.9/site-packages/virttest/bin/install_root/bin/qemu-system-ppc64 +emulator_path=/usr/local/lib/python3.9/site-packages/virttest/bin/install_root/bin/qemu-system-ppc64 +kernel=/home/epcci/guest/linux/vmlinux +guest_script = "http://ltc-jenkins.aus.stglabs.ibm.com:81/sath/epcci/nested.sh" +virtinstall_qemu_cmdline=" -M pseries,cap-nested-hv=on" +login_timeout = 600 +serial_login = no + + +variants: + - L1: + pre_command = "rm -rf /home/epcci/guest;mkdir -p /home/epcci/guest/;git clone --depth 1 https://github.com/torvalds/linux /home/epcci/guest/linux/ && cd /home/epcci/guest/linux/ && wget http://ltc-jenkins.aus.stglabs.ibm.com:81/sath/epcci/0001-Add-additional-kernel-configs.patch && git am 0001-Add-additional-kernel-configs.patch && git log -2 && make ppc64le_guest_defconfig && make -j 100 -s" + only nested_test diff --git a/config/tests/guest/libvirt/install.cfg b/config/tests/guest/libvirt/install.cfg index 09a95134..e175da6b 100644 --- a/config/tests/guest/libvirt/install.cfg +++ b/config/tests/guest/libvirt/install.cfg @@ -7,7 +7,8 @@ vms = virt-tests-vm1 #Network nettype = bridge netdst = virbr0 -display = vnc +display = nographic +vga = none take_regular_screendumps = no keep_screendumps_on_error = no keep_screendumps = no @@ -28,12 +29,11 @@ only no_9p_export only no_pci_assignable only (image_backend=filesystem) only smallpages -smp = 32 -vcpu_cores = 4 -vcpu_threads = 8 +smp = 8 +vcpu_cores = 8 +vcpu_threads = 1 vcpu_sockets = 1 -# 32G -mem = 32768 +mem = 8192 only virtio_net only qcow2 only virtio_scsi @@ -44,10 +44,12 @@ variants: - guest_install: variants: - url: - only CentOS.7.2.ppc64le + Fedora.devel.ppc64le: + url = https://dl.fedoraproject.org/pub/fedora-secondary/development/rawhide/Server/ppc64le/os + only Fedora.devel.ppc64le only unattended_install.url.http_ks.default_install.aio_native - cdrom: - no CentOS.7.2.ppc64le + no Fedora.devel.ppc64le only unattended_install.cdrom.http_ks.default_install.aio_native - guest_dep_install: reboot_before_test = no diff --git a/config/tests/guest/libvirt/nested.cfg b/config/tests/guest/libvirt/nested.cfg new file mode 100644 index 00000000..bd1bd9f4 --- /dev/null +++ b/config/tests/guest/libvirt/nested.cfg @@ -0,0 +1,286 @@ +include tests-shared.cfg +username = root +password = 123456 +main_vm = vm1 +vms = vm1 +nettype = bridge +netdst=virbr0 +display = nographic +take_regular_screendumps = no +keep_screendumps_on_error = no +keep_screendumps = no +store_vm_register = no +restore_image_after_testing=no +vga=none +virt_install_binary = /usr/bin/virt-install +hvm_or_pv = hvm +machine_type = pseries +only bridge +no xen, lxc, esx, ovmf +#Filterout unwanted disk types +no qed,qcow2v3,raw_dd,vmdk, usb2 +only no_virtio_rng +only smp2 +only no_9p_export +only no_pci_assignable +only (image_backend=filesystem) +create_vm_libvirt=yes +kill_vm=yes +kill_vm_libvirt=yes +env_cleanup=yes +mem=8192 +smp=8 +threads=1 +cores=8 +sockets=1 +vcpu_sockets=1 +vcpu_cores=8 +vcpu_threads=1 +setvcpus_max = 8 +vcpu_maxcpus = 8 +qemu_binary=/usr/local/lib/python3.9/site-packages/virttest/bin/install_root/bin/qemu-system-ppc64 +emulator_path=/usr/local/lib/python3.9/site-packages/virttest/bin/install_root/bin/qemu-system-ppc64 +kernel=/home/epcci/linux/vmlinux +initrd='' +use_serial_login=yes +test_timeout = 72000 + +variants: + - vmkernel: + only virtio_net + only qcow2 + only smallpages + only virtio_scsi + pre_command = "rm -rf /home/epcci/linux;git clone --depth 1 https://github.com/torvalds/linux /home/epcci/linux/ && cd /home/epcci/linux/ && git log -1 && make ppc64le_guest_defconfig && make -j 100 -s" + kernel_args='root=/dev/sda2 rw console=tty0 console=ttyS0,115200 init=/sbin/init initcall_debug selinux=0' + only guest_test.isa_serial_operations + + - vmstart: + only boot + no virsh.boot + only virtio_net + only qcow2 + variants: + - @: + - with_numa: + only with_smt1 + numa=yes + smp=8 + threads=1 + cores=8 + sockets=1 + setvcpus_max = 8 + vcpu_maxcpus = 8 + vcpu_cores = 8 + vcpu_threads = 1 + guest_numa_nodes="node0 node1 node2 node3" + variants: + - symmetric_nodes: + numa_mem_node0="2097152" + numa_cpus_node0="0-1" + numa_nodeid_node0="0" + numa_mem_node1="2097152" + numa_cpus_node1="2-3" + numa_nodeid_node1="1" + numa_mem_node2="2097152" + numa_cpus_node2="4-5" + numa_nodeid_node2="2" + numa_mem_node3="2097152" + numa_cpus_node3="6-7" + numa_nodeid_node3="3" + - asymmetric_nodes: + numa_mem_node0="1048576" + numa_cpus_node0="1,3,7" + numa_nodeid_node0="0" + numa_mem_node1="2097152" + numa_cpus_node1="0,4-5" + numa_nodeid_node1="1" + numa_mem_node2="2097152" + numa_cpus_node2="2" + numa_nodeid_node2="2" + numa_mem_node3="3145728" + numa_cpus_node3="6" + numa_nodeid_node3="3" + variants: + - @: + - with_smt1: + smp=8 + threads=1 + cores=8 + sockets=1 + setvcpus_max=8 + vcpu_maxcpus=8 + vcpu_cores=8 + vcpu_threads=1 + vcpu_sockets=1 + - with_smt2: + smp=8 + threads=2 + cores=4 + sockets=1 + setvcpus_max=8 + vcpu_maxcpus=8 + vcpu_cores=4 + vcpu_threads=2 + vcpu_sockets=1 + - with_smt4: + smp=8 + threads=4 + cores=2 + sockets=1 + setvcpus_max=8 + vcpu_maxcpus=8 + vcpu_cores=2 + vcpu_threads=4 + vcpu_sockets=1 + - with_smt8: + smp=8 + threads=4 + cores=2 + sockets=1 + setvcpus_max=8 + vcpu_maxcpus=8 + vcpu_cores=2 + vcpu_threads=4 + vcpu_sockets=1 + - with_lowmem: + no with_numa + mem=2048 + - with_singlecpu: + only with_smt1 + smp=1 + threads=1 + cores=1 + sockets=1 + setvcpus_max=1 + vcpu_maxcpus=1 + vcpu_cores=1 + vcpu_threads=1 + vcpu_sockets=1 + variants: + - @: + - with_intc: + only with_smt4 + variants: + - xics: + virtinstall_qemu_cmdline_vm1=" -M pseries,ic-mode=xics" + - xive: + virtinstall_qemu_cmdline_vm1=" -M pseries,ic-mode=xive" + - dual: + virtinstall_qemu_cmdline_vm1=" -M pseries,ic-mode=dual" + - xics_kernel_irqchip_off: + virtinstall_qemu_cmdline_vm1=" -M pseries,ic-mode=xics,kernel-irqchip=off" + - xive_kernel_irqchip_off: + virtinstall_qemu_cmdline_vm1=" -M pseries,ic-mode=xive,kernel-irqchip=off" + - dual_kernel_irqchip_off: + virtinstall_qemu_cmdline_vm1=" -M pseries,ic-mode=dual,kernel-irqchip=off" + - with_vsmt: + mem = 20480 + no with_intc,mem_merge,with_numa + only with_smt1 + vms = "vm1" + cores_vm1=1 + threads_vm1=8 + sockets=1 + vcpu_cores_vm1=1 + vcpu_threads_vm1=8 + vcpu_sockets_vm1=1 + virtinstall_qemu_cmdline_vm1=" -M pseries,vsmt=8" + - with_nested_cap: + no with_vsmt,with_intc,mem_merge + only with_smt4,with_smt8 + virtinstall_qemu_cmdline_vm1=" -M pseries,cap-nested-hv=on" + variants: + - with_virtio_scsi: + kernel_args='root=/dev/sda2 rw console=tty0 console=ttyS0,115200 init=/sbin/init initcall_debug selinux=0' + no with_virtio_blk + only virtio_scsi + - with_virtio_blk: + kernel_args='root=/dev/vda2 rw console=tty0 console=ttyS0,115200 init=/sbin/init initcall_debug selinux=0' + no with_virtio_scsi + only virtio_blk + + - vm: + kernel_args='root=/dev/sda2 rw console=tty0 console=ttyS0,115200 init=/sbin/init initcall_debug selinux=0' + only virtio_scsi + only virtio_net + only qcow2 + variants: + - guesttests: + variants: + - memory: + only avocado_guest.memhotplug,avocado_guest.eatmemory,avocado_guest.memintegrity + - generic: + only smallpages + only avocado_guest.ltp,avocado_guest.kselftest + - cpu: + only smallpages + vcpu_cores = 4 + vcpu_threads = 8 + vcpu_sockets = 1 + vcpu_maxcpus = 32 + only avocado_guest.ebizzy,avocado_guest.ppc64_cpu_test + - io: + vcpu_cores = 16 + vcpu_threads = 2 + vcpu_sockets = 1 + vcpu_maxcpus = 32 + only avocado_guest.fiotest + + - guestdump: + only virsh.dump.positive_test.non_acl.live_dump + - diskhotplug: + at_dt_disk_device_target = sdb + only virsh.attach_detach_disk_matrix..at_option_live + no dt_option_live_config,dt_option_config,dt_option_default,dt_option_live_config,at_okay_dt_error,at_error_dt_error,pre_vm_state_shutoff,pre_vm_state_paused,pre_vm_state_transient,dt_option_current + - memoryhotplug: + # FIXME + only libvirt_mem.positive_test.memory.hot.unplug.max_slots.with_rand_reboot + - vcpuhotplug: + start_vm = yes + test_itr = 2 + mem = 81920 + vcpu_max_timeout = 480 + vcpu_sockets = 1 + vcpu_maxcpus = 64 + topology_correction = "no" + variants: + - 1thread: + no hugepages + vcpu_cores = 64 + smp = 1 + vcpu_threads = 1 + vcpu_current_num = 1 + vcpu_plug_num = 64 + vcpu_unplug_num = 1 + vcpu_max_num = 64 + only libvirt_vcpu_plug_unplug..with_maxvcpu + - 2threads: + no hugepages + smp = 2 + vcpu_cores = 32 + vcpu_threads = 2 + vcpu_current_num = 2 + vcpu_plug_num = 64 + vcpu_unplug_num = 2 + vcpu_max_num = 64 + only libvirt_vcpu_plug_unplug..with_maxvcpu + - 4threads: + smp = 4 + vcpu_cores = 16 + vcpu_threads = 4 + vcpu_current_num = 4 + vcpu_plug_num = 64 + vcpu_unplug_num = 4 + vcpu_max_num = 64 + only libvirt_vcpu_plug_unplug..with_maxvcpu + - 8threads: + no hugepages + smp = 8 + vcpu_cores = 8 + vcpu_threads = 8 + vcpu_current_num = 8 + vcpu_plug_num = 64 + vcpu_unplug_num = 8 + vcpu_max_num = 64 + only libvirt_vcpu_plug_unplug..with_maxvcpu diff --git a/config/tests/guest/libvirt/pef.cfg b/config/tests/guest/libvirt/pef.cfg new file mode 100644 index 00000000..5faee65f --- /dev/null +++ b/config/tests/guest/libvirt/pef.cfg @@ -0,0 +1,276 @@ +include tests-shared.cfg +username = root +password = 123456 +main_vm = vm1 +vms = vm1 +vm_type = libvirt +virt_install_binary = /usr/bin/virt-install +qemu_img_binary = /usr/bin/qemu-img +hvm_or_pv = hvm +machine_type = pseries +use_os_variant = no +use_os_type = no +only bridge +only smp2 +only no_9p_export +only no_virtio_rng +only no_pci_assignable +only (image_backend=filesystem) +only smallpages +kill_vm = yes +kill_vm_libvirt = yes +env_cleanup = yes +create_vm_libvirt = yes +vga = None +display = nographic +take_regular_screendumps = no +backup_image_before_testing = no +avocado_reinstall = False +test_timeout = 3600000 +only qcow2 +only virtio_scsi +only virtio_net +mem = 8192 +qemu_binary = /usr/share/avocado-plugins-vt/bin/install_root/bin/qemu-system-ppc64 +emulator_path = /usr/share/avocado-plugins-vt/bin/install_root/bin/qemu-system-ppc64 +bios_path = /usr/share/avocado-plugins-vt/bin/install_root/share/qemu/slof.bin + +variants: + - secure: + # this guest image has modified initrd image using svm-tools + # and addtional kernel cmdline option svm=on xive=off to enable + # svm functionality. + image_name = images/rhel8-devel-ppc64le-svm + # https://bugzilla.linux.ibm.com/show_bug.cgi?id=186761 + tpm_device_path = "/dev/tpmrm0" + tpm_model = "spapr-tpm-proxy" + virtinstall_qemu_cmdline=" -M pseries,x-svm-allowed=on -global virtio-scsi-pci.disable-legacy=on -global virtio-scsi-pci.disable-modern=off -global virtio-scsi-pci.iommu_platform=on -global virtio-blk-pci.disable-legacy=on -global virtio-blk-pci.disable-modern=off -global virtio-blk-pci.iommu_platform=on -global virtio-net-pci.disable-legacy=on -global virtio-net-pci.disable-modern=off -global virtio-net-pci.iommu_platform=on -global virtio-serial-pci.disable-legacy=on -global virtio-serial-pci.disable-modern=off -global virtio-serial-pci.iommu_platform=on -global virtio-balloon-pci.disable-legacy=on -global virtio-balloon-pci.disable-modern=off -global virtio-balloon-pci.iommu_platform=on" + smp = 32 + mem = 81920 + vcpu_cores = 32 + vcpu_threads = 1 + vcpu_sockets = 1 + vcpu_maxcpus = 32 + variants: + - singlevm: + variants: + - reboottest: + only io-github-autotest-qemu.reboot + reboot_count = 100 + variants: + - 512M: + smp = 1 + vcpu_maxcpus = 1 + vcpu_threads = 1 + vcpu_maxcpus = 1 + vcpu_cores = 1 + mem = 512 + - 1G: + mem = 1024 + - 2G: + mem = 2048 + - 4G: + mem = 4096 + - 8G: + mem = 8192 + - 16G: + mem = 16384 + - 32G: + vcpu_cores = 16 + smp = 16 + vcpu_maxcpus = 16 + mem = 32768 + - 64G: + vcpu_cores = 16 + smp = 16 + vcpu_maxcpus = 16 + mem = 65536 + login_timeout = 450 + - 128G: + vcpu_cores = 32 + smp = 32 + vcpu_maxcpus = 32 + mem = 131072 + login_timeout = 660 + + - vcpuhotplug: + start_vm = yes + test_itr = 2 + vcpu_max_timeout = 480 + vcpu_sockets = 1 + vcpu_maxcpus = 64 + topology_correction = "no" + variants: + - 1thread: + vcpu_cores = 64 + smp = 1 + vcpu_threads = 1 + vcpu_current_num = 1 + vcpu_plug_num = 64 + vcpu_unplug_num = 1 + vcpu_max_num = 64 + only libvirt_vcpu_plug_unplug..with_maxvcpu + - 2threads: + smp = 2 + vcpu_cores = 32 + vcpu_threads = 2 + vcpu_current_num = 2 + vcpu_plug_num = 64 + vcpu_unplug_num = 2 + vcpu_max_num = 64 + only libvirt_vcpu_plug_unplug..with_maxvcpu + - 4threads: + smp = 4 + vcpu_cores = 16 + vcpu_threads = 4 + vcpu_current_num = 4 + vcpu_plug_num = 64 + vcpu_unplug_num = 4 + vcpu_max_num = 64 + only libvirt_vcpu_plug_unplug..with_maxvcpu + - 8threads: + smp = 8 + vcpu_cores = 8 + vcpu_threads = 8 + vcpu_current_num = 8 + vcpu_plug_num = 64 + vcpu_unplug_num = 8 + vcpu_max_num = 64 + only libvirt_vcpu_plug_unplug..with_maxvcpu + - memoryhotplug: + attach_times = 15 + only libvirt_mem.positive_test.memory.hot.unplug.max_slots.with_rand_reboot + - guestdump: + only virsh.dump.positive_test.non_acl.live_dump + - diskhotplug: + at_dt_disk_device_target = sdb + only virsh.attach_detach_disk_matrix..at_option_live + no dt_option_live_config,dt_option_config,dt_option_default,dt_option_live_config,at_okay_dt_error,at_error_dt_error,pre_vm_state_shutoff,pre_vm_state_paused,pre_vm_state_transient,dt_option_current + - guesttests: + variants: + - memory: + mem = 8192 + only avocado_guest.memhotplug,avocado_guest.eatmemory,avocado_guest.memintegrity + - generic: + test_timeout = 600000 + only avocado_guest.ltp + # kself test needs a src rpm for distro + #only avocado_guest.ltp,avocado_guest.kselftest + - cpu: + vcpu_cores = 4 + vcpu_threads = 8 + vcpu_sockets = 1 + vcpu_maxcpus = 32 + only avocado_guest.ebizzy,avocado_guest.ppc64_cpu_test + - io: + vcpu_cores = 16 + vcpu_threads = 2 + vcpu_sockets = 1 + vcpu_maxcpus = 32 + only avocado_guest.fiotest + + - multivm: + # this has to set based on host svm memory, in this case we have 512G svm mem on host + #mem = 4096 + mem = 8192 + #mem = 12288 + #mem = 65536 + login_timeout = 500 + vms = "vm1 vm2 vm3 vm4" + vms = "vm1" + drive_format_vm2=virtio + scsi_hba_vm2="" + libvirt_controller_vm2="" + smp_vm1 = 32 + vcpu_cores_vm1 = 32 + vcpu_threads_vm1 = 1 + vcpu_sockets_vm1 = 1 + vcpu_maxcpus_vm1 = 32 + smp_vm2 = 32 + vcpu_cores_vm2 = 16 + vcpu_threads_vm2 = 2 + vcpu_sockets_vm2 = 1 + vcpu_maxcpus_vm2 = 32 + smp_vm3 = 32 + vcpu_cores_vm3 = 8 + vcpu_threads_vm3 = 4 + vcpu_sockets_vm3 = 1 + vcpu_maxcpus_vm3 = 32 + smp_vm4 = 32 + vcpu_cores_vm4 = 4 + vcpu_threads_vm4 = 8 + vcpu_sockets_vm4 = 1 + vcpu_maxcpus_vm4 = 32 + reboot_count = 6 + variants: + - reboottest: + guest_stress = no + host_stress = no + host_stress_events = "" + stress_events = "reboot" + stress_itrs = 100 + test_timeout = 1800000 + event_sleep_time = 30 + itr_sleep_time = 30 + only multivm_cpustress.custom_host_events.custom_vm_events + - cpupin_withstress: + guest_stress = yes + host_stress = no + host_stress_events = "" + stress_events = "vcpupin,emulatorpin" + stress_itrs = 500 + test_timeout = 6000000 + event_sleep_time = 30 + itr_sleep_time = 30 + only multivm_cpustress.custom_host_events.custom_vm_events + + - nonsecure: + image_name = images/rhel8-devel-ppc64le + virtinstall_qemu_cmdline=" -M pseries,x-svm-allowed=off -global virtio-scsi-pci.disable-legacy=on -global virtio-scsi-pci.disable-modern=off -global virtio-scsi-pci.iommu_platform=on -global virtio-blk-pci.disable-legacy=on -global virtio-blk-pci.disable-modern=off -global virtio-blk-pci.iommu_platform=on -global virtio-net-pci.disable-legacy=on -global virtio-net-pci.disable-modern=off -global virtio-net-pci.iommu_platform=on -global virtio-serial-pci.disable-legacy=on -global virtio-serial-pci.disable-modern=off -global virtio-serial-pci.iommu_platform=on -global virtio-balloon-pci.disable-legacy=on -global virtio-balloon-pci.disable-modern=off -global virtio-balloon-pci.iommu_platform=on" + smp = 80 + mem = 81920 + vcpu_cores = 80 + vcpu_threads = 1 + vcpu_sockets = 1 + vcpu_maxcpus = 80 + variants: + - singlevm: + variants: + - reboottest: + only io-github-autotest-qemu.reboot + reboot_count = 6 + - multivm: + mem = 8192 + vms = "vm1 vm2 vm3 vm4" + smp_vm1 = 16 + vcpu_cores_vm1 = 16 + vcpu_threads_vm1 = 1 + vcpu_sockets_vm1 = 1 + vcpu_maxcpus_vm1 = 16 + smp_vm2 = 16 + vcpu_cores_vm2 = 8 + vcpu_threads_vm2 = 2 + vcpu_sockets_vm2 = 1 + vcpu_maxcpus_vm2 = 16 + smp_vm3 = 16 + vcpu_cores_vm3 = 4 + vcpu_threads_vm3 = 4 + vcpu_sockets_vm3 = 1 + vcpu_maxcpus_vm3 = 16 + smp_vm4 = 16 + vcpu_cores_vm4 = 2 + vcpu_threads_vm4 = 8 + vcpu_sockets_vm4 = 1 + vcpu_maxcpus_vm4 = 16 + variants: + - reboottest: + guest_stress = no + host_stress = no + host_stress_events = "" + stress_events = "reboot" + stress_itrs = 6 + test_timeout = 6000000 + event_sleep_time = 30 + itr_sleep_time = 30 + only multivm_cpustress.custom_host_events.custom_vm_events + diff --git a/config/tests/guest/libvirt/upstream.cfg b/config/tests/guest/libvirt/upstream.cfg index da2afd09..88c1fa98 100644 --- a/config/tests/guest/libvirt/upstream.cfg +++ b/config/tests/guest/libvirt/upstream.cfg @@ -38,8 +38,8 @@ vcpu_cores=8 vcpu_threads=1 setvcpus_max = 8 vcpu_maxcpus = 8 -qemu_binary=/usr/share/avocado-plugins-vt/bin/qemu -emulator_path=/usr/share/avocado-plugins-vt/bin/qemu +qemu_binary=/usr/local/lib/python3.9/site-packages/virttest/bin/install_root/bin/qemu-system-ppc64 +emulator_path=/usr/local/lib/python3.9/site-packages/virttest/bin/install_root/bin/qemu-system-ppc64 kernel=/home/kvmci/linux/vmlinux initrd='' use_serial_login=yes