diff --git a/files/smt.conf b/files/smt.conf new file mode 100644 index 00000000..1dcf8378 --- /dev/null +++ b/files/smt.conf @@ -0,0 +1,10 @@ +# +# A task to turn off smt +# + +description "turn off the smt" + +start on runlevel [2345] + +task +exec ppc64_cpu --smt=off diff --git a/files/smt.service b/files/smt.service new file mode 100644 index 00000000..f2aaeaee --- /dev/null +++ b/files/smt.service @@ -0,0 +1,24 @@ +# Copyright 2016, IBM Corp. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +[Unit] +Description=Disable SMT +After=syslog.target + +[Service] +Type=simple +ExecStart=/usr/sbin/ppc64_cpu --smt=off +TimeoutSec=300 + +[Install] +WantedBy=multi-user.target diff --git a/tasks/nova_compute_kvm.yml b/tasks/nova_compute_kvm.yml index 498e8fa9..5e9c5d69 100644 --- a/tasks/nova_compute_kvm.yml +++ b/tasks/nova_compute_kvm.yml @@ -79,4 +79,8 @@ - nova-kvm - nova-libvirt +- include: nova_disable_smt.yml + when: + - ansible_architecture == 'ppc64le' + - include: nova_compute_kvm_virsh_net_remove.yml diff --git a/tasks/nova_disable_smt.yml b/tasks/nova_disable_smt.yml new file mode 100644 index 00000000..336a6ab3 --- /dev/null +++ b/tasks/nova_disable_smt.yml @@ -0,0 +1,41 @@ +--- +# Copyright 2016 IBM Corp. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +- name: Disable SMT + command: /usr/sbin/ppc64_cpu --smt=off + failed_when: false + tags: + - kvm-disable-smt + +- name: Place the systemd init script + copy: + src: "smt.service" + dest: "/etc/systemd/system/smt.service" + mode: "0644" + owner: "root" + group: "root" + when: + - pid1_name == "systemd" + notify: + - Reload systemd daemon + +- name: Upstart script to disable SMT + copy: + src: "smt.conf" + dest: "/etc/init/smt.conf" + when: + - pid1_name != "systemd" + notify: + - Reload upstart init scripts diff --git a/tasks/nova_pre_install.yml b/tasks/nova_pre_install.yml index 38a597c8..9f6afe3e 100644 --- a/tasks/nova_pre_install.yml +++ b/tasks/nova_pre_install.yml @@ -111,3 +111,9 @@ tags: - sudoers - nova-sudoers + +- name: Set default nova console for ppc64le + set_fact: + nova_console_type: "novnc" + when: ansible_architecture == 'ppc64le' +