[why] specify the VM that need to consume the queues one job will added one queue, but one VM can consume job from multi queues.
[how] to solve this problem, the scheduler should obtains which queues should be request.
solution-1: register mac hostname and queues relation before: mac2host change to: mac2host and host2queues then scheduler can get queues based on mac
solution-2: /boot.ipxe/mac/${mac}?queues=xxx,yyy
our HW and PXE-VM use /tftpboot/boot.ipxe to send request, unable to specify parameter, so solution-1 may be better.
Signed-off-by: Xiao Shenwei xiaoshenwei96@163.com --- providers/my-qemu.sh | 4 +++- providers/qemu.sh | 17 +++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/providers/my-qemu.sh b/providers/my-qemu.sh index 954d3a0..8845a34 100755 --- a/providers/my-qemu.sh +++ b/providers/my-qemu.sh @@ -4,6 +4,8 @@
[[ $tbox_group ]] || tbox_group=vm-2p8g -export hostname=$tbox_group--$USER-$$ +export hostname=$tbox_group.$USER-$$ +# specify which queues will be request, use " " to separate more than 2 values +export queues="$tbox_group~$USER"
$CCI_SRC/providers/qemu.sh diff --git a/providers/qemu.sh b/providers/qemu.sh index d97fd85..6c61f86 100755 --- a/providers/qemu.sh +++ b/providers/qemu.sh @@ -9,6 +9,7 @@ load_cci_defaults
: ${hostname:="vm-1p1g-1"} +: ${queues:="vm-1p1g.$(arch)"} # unicast prefix: x2, x6, xA, xE export mac=$(echo $hostname | md5sum | sed 's/^(..)(..)(..)(..)(..).*$/0a-\1-\2-\3-\4-\5/') echo hostname: $hostname @@ -17,14 +18,22 @@ echo $mac > mac echo "arp -n | grep ${mac//-/:}" > ip.sh chmod +x ip.sh
-curl -X PUT "http://$%7BSCHED_HOST:-172.17.0.1%7D:$%7BSCHED_PORT:-3000%7D/set_host_mac?ho..." +set_host_info() +{ + # use "," replace " " + local api_queues=$(echo $queues | sed -r 's/ +/,/g') + curl -X PUT "http://$%7BSCHED_HOST:-172.17.0.1%7D:$%7BSCHED_PORT:-3000%7D/set_host_mac?ho..." + curl -X PUT "http://$%7BSCHED_HOST:-172.17.0.1%7D:$%7BSCHED_PORT:-3000%7D/set_host2queues..." +} +set_host_info
-del_host_mac() +del_host_info() { curl -X PUT "http://$%7BSCHED_HOST:-172.17.0.1%7D:$%7BSCHED_PORT:-3000%7D/del_host_mac?ma..." > /dev/null 2>&1 + curl -X PUT "http://$%7BSCHED_HOST:-172.17.0.1%7D:$%7BSCHED_PORT:-3000%7D/del_host2queues..." > /dev/null 2>&1 }
-trap del_host_mac EXIT +trap del_host_info EXIT
( if [[ $hostname =~ ^(.*)-[0-9]+$ ]]; then @@ -33,7 +42,7 @@ trap del_host_mac EXIT tbox_group=$hostname fi
- host=${tbox_group%%--*} + host=${tbox_group%.*}
create_yaml_variables "$LKP_SRC/hosts/${host}"
On Tue, Nov 03, 2020 at 02:37:52PM +0800, Xiao Shenwei wrote:
[why] specify the VM that need to consume the queues one job will added one queue, but one VM can consume job from multi queues.
[how] to solve this problem, the scheduler should obtains which queues should be request.
solution-1: register mac hostname and queues relation before: mac2host change to: mac2host and host2queues then scheduler can get queues based on mac
solution-2: /boot.ipxe/mac/${mac}?queues=xxx,yyy
our HW and PXE-VM use /tftpboot/boot.ipxe to send request, unable to specify parameter, so solution-1 may be better.
Signed-off-by: Xiao Shenwei xiaoshenwei96@163.com
providers/my-qemu.sh | 4 +++- providers/qemu.sh | 17 +++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/providers/my-qemu.sh b/providers/my-qemu.sh index 954d3a0..8845a34 100755 --- a/providers/my-qemu.sh +++ b/providers/my-qemu.sh @@ -4,6 +4,8 @@
[[ $tbox_group ]] || tbox_group=vm-2p8g -export hostname=$tbox_group--$USER-$$
export hostname=$tbox_group.$USER-$$
Use quotation marks to be consistent with the following Thanks sunyukui
+# specify which queues will be request, use " " to separate more than 2 values
export queues="$tbox_group~$USER"
$CCI_SRC/providers/qemu.sh diff --git a/providers/qemu.sh b/providers/qemu.sh index d97fd85..6c61f86 100755 --- a/providers/qemu.sh +++ b/providers/qemu.sh @@ -9,6 +9,7 @@ load_cci_defaults
: ${hostname:="vm-1p1g-1"} +: ${queues:="vm-1p1g.$(arch)"} # unicast prefix: x2, x6, xA, xE export mac=$(echo $hostname | md5sum | sed 's/^(..)(..)(..)(..)(..).*$/0a-\1-\2-\3-\4-\5/') echo hostname: $hostname @@ -17,14 +18,22 @@ echo $mac > mac echo "arp -n | grep ${mac//-/:}" > ip.sh chmod +x ip.sh
-curl -X PUT "http://$%7BSCHED_HOST:-172.17.0.1%7D:$%7BSCHED_PORT:-3000%7D/set_host_mac?ho..." +set_host_info() +{
- # use "," replace " "
- local api_queues=$(echo $queues | sed -r 's/ +/,/g')
- curl -X PUT "http://$%7BSCHED_HOST:-172.17.0.1%7D:$%7BSCHED_PORT:-3000%7D/set_host_mac?ho..."
- curl -X PUT "http://$%7BSCHED_HOST:-172.17.0.1%7D:$%7BSCHED_PORT:-3000%7D/set_host2queues..."
+} +set_host_info
-del_host_mac() +del_host_info() { curl -X PUT "http://$%7BSCHED_HOST:-172.17.0.1%7D:$%7BSCHED_PORT:-3000%7D/del_host_mac?ma..." > /dev/null 2>&1
- curl -X PUT "http://$%7BSCHED_HOST:-172.17.0.1%7D:$%7BSCHED_PORT:-3000%7D/del_host2queues..." > /dev/null 2>&1
}
-trap del_host_mac EXIT +trap del_host_info EXIT
( if [[ $hostname =~ ^(.*)-[0-9]+$ ]]; then @@ -33,7 +42,7 @@ trap del_host_mac EXIT tbox_group=$hostname fi
- host=${tbox_group%%--*}
host=${tbox_group%.*}
create_yaml_variables "$LKP_SRC/hosts/${host}"
-- 2.23.0
On Tue, Nov 03, 2020 at 02:37:52PM +0800, Xiao Shenwei wrote:
[why] specify the VM that need to consume the queues one job will added one queue, but one VM can consume job from multi queues.
[how] to solve this problem, the scheduler should obtains which queues should be request.
solution-1: register mac hostname and queues relation before: mac2host change to: mac2host and host2queues then scheduler can get queues based on mac
solution-2: /boot.ipxe/mac/${mac}?queues=xxx,yyy
our HW and PXE-VM use /tftpboot/boot.ipxe to send request, unable to specify parameter, so solution-1 may be better.
Signed-off-by: Xiao Shenwei xiaoshenwei96@163.com
providers/my-qemu.sh | 4 +++- providers/qemu.sh | 17 +++++++++++++---- 2 files changed, 16 insertions(+), 5 deletions(-)
diff --git a/providers/my-qemu.sh b/providers/my-qemu.sh index 954d3a0..8845a34 100755 --- a/providers/my-qemu.sh +++ b/providers/my-qemu.sh @@ -4,6 +4,8 @@
[[ $tbox_group ]] || tbox_group=vm-2p8g -export hostname=$tbox_group--$USER-$$ +export hostname=$tbox_group.$USER-$$
How about keeping the original hostname for now?
- host=${tbox_group%%--*}
- host=${tbox_group%.*}
Thanks, Fengguang
[[ $tbox_group ]] || tbox_group=vm-2p8g -export hostname=$tbox_group--$USER-$$ +export hostname=$tbox_group.$USER-$$
How about keeping the original hostname for now?
you means "." only used by queue field. queue: vm-2p8g.xxx
now hostname only used by find queues by host2queues
so, each one is ok.
for vm on HW: vm-2p8g--taishan200-2280-2s48p-256g--a11 vm-2p8g.taishan200-2280-2s48p-256g--a11 (this way feel more intuitive to show it's tbox_group and which machine)
Thanks, Shenwei
- host=${tbox_group%%--*}
- host=${tbox_group%.*}
Thanks, Fengguang
On Tue, Nov 03, 2020 at 07:31:37PM +0800, Xiao Shenwei wrote:
[[ $tbox_group ]] || tbox_group=vm-2p8g -export hostname=$tbox_group--$USER-$$ +export hostname=$tbox_group.$USER-$$
How about keeping the original hostname for now?
I mean keeping this line
export hostname=$tbox_group--$USER-$$
It has nothing to do with the queue name, or taishan200.
But anyway it's not a big issue.
you means "." only used by queue field. queue: vm-2p8g.xxx
now hostname only used by find queues by host2queues
so, each one is ok.
for vm on HW: vm-2p8g--taishan200-2280-2s48p-256g--a11 vm-2p8g.taishan200-2280-2s48p-256g--a11 (this way feel more intuitive to show it's tbox_group and which machine)
Thanks, Fengguang