Earlier  
Posted Nick Remark
#openstack-nova - 2022-06-13
10:45:03 sean-k-mooney not its there directly https://zuul.opendev.org/t/openstack/build/6f4ec842455e4231a659c7ac12fc5f7c/log/controller/logs/local_conf.txt
10:45:59 sean-k-mooney if that was a multi node job then you woudl also see a compute/logs/local.conf.txt
10:46:43 sean-k-mooney the local.conf is one of the files we capature and preserve in the log output dir
10:49:20 songwenping ok, thanks.
10:59:14 sean-k-mooney gibi: implying we supprot ffu in any way conviced me we should ignore my previous comment and put it down to a lack of morning coffee :)
10:59:41 gibi sean-k-mooney: FFU is hard
10:59:49 gibi without coffee it is even harder :D
11:00:53 gibi but yeah, if we want to talk about FFU then we need to start with testing it first
11:01:10 gibi as I'm not soo convinced that it can be done :)
11:01:23 gibi I mean can be FFU successfully
11:01:57 rmart04 Hey @sean-k-mooney hope you are well. Wondering if you might be able to provide some advice for some CPU profile pain?
11:07:03 rmart04 not strictly development I know :D
11:15:18 rmart04 I'll post the question just incase it piques your interest :D
11:15:36 rmart04 We're in the process of upgrading to C8Stream (OS Train) and noticed our crippled CPU profile (Skylake-Server-IBRS) we have been using across a couple of processor generations no longer works, nova-compute won't start. We get "invalid CPUinfo profile is not compatible with CPU". I'm guessing a microkernel update has changed the flags on the move from C7->C8 for our CascadeLake servers. Is there an easy way around this these days? I'm guessing
11:15:36 rmart04 if I change the flags I'm going to break future live migrations? :/
11:17:33 sean-k-mooney rmart04: just back with coffee reading back
11:17:49 opendevreview Balazs Gibizer proposed openstack/nova master: Refactor the nested if-else forest https://review.opendev.org/c/openstack/nova/+/845581
11:18:36 sean-k-mooney rmart04: this s almost certainly caused by the fact that tsx was disabled/removed by intel in a microcode
11:19:11 gibi Uggla: I made an attempt to transform out the nested if-else forest from the unshelve patch https://review.opendev.org/c/openstack/nova/+/845581
11:19:16 sean-k-mooney i belive the Skylake-Server-IBRS has tsx enabeld but the cascadelake cpus woudl have it disabeld by the new microcode in c8s
11:20:50 sean-k-mooney rmart04: you are currently using Skylake-Server-IBRS i would guess Skylake-Server-noTSX-IBRS will work
11:21:53 rmart04 I was pointed in that same direction by JGarbutt too, but I couldn't see the TSX flag specified in the old SkyLake profile so thought it might be somthing else. Possibly its still in play even though not specifically specified.
11:22:04 sean-k-mooney vagrant@compute ~]$ diff /usr/share/libvirt/cpu_map/x86_Skylake-Server-IBRS.xml /usr/share/libvirt/cpu_map/x86_Skylake-Server-noTSX-IBRS.xml
11:22:06 sean-k-mooney 2,3c2,3
11:22:08 sean-k-mooney < <model name='Skylake-Server-IBRS'>
11:22:10 sean-k-mooney < <decode host='on' guest='on'/>
11:22:12 sean-k-mooney ---
11:22:14 sean-k-mooney > <model name='Skylake-Server-noTSX-IBRS'>
11:22:16 sean-k-mooney > <decode host='on' guest='off'/>
11:22:18 sean-k-mooney 33d32
11:22:20 sean-k-mooney < <feature name='hle'/>
11:22:22 sean-k-mooney 58d56
11:22:24 sean-k-mooney < <feature name='rtm'/>
11:22:26 sean-k-mooney it sthe hle and rtm flags
11:22:31 sean-k-mooney that are used to provde the tsx functionality
11:22:54 rmart04 ah OK I see, I was looking for TSX specifically.
11:23:01 rmart04 OK that's really useful, thank you.
11:23:48 rmart04 I see there is a tsx=on flag in the kernel which might make this go away quietly but unfortunately that probably won't fly on this deployment.
11:24:05 sean-k-mooney this is basically what nova/libvirt is comptueing https://paste.opendev.org/show/bMJWSQkhwySkS1FlGRSG/
11:24:23 rmart04 If I change the profile, its going to break lots of LM i guess?
11:24:35 sean-k-mooney rmart04: tsx=on wont work
11:25:13 sean-k-mooney if they try to use the tsx functionality it will fail
11:25:48 sean-k-mooney rmart04: the only way to change the cpu modle is via a hard reboot or cold migration
11:26:01 sean-k-mooney so to resolve this you will need guest downtime
11:26:10 sean-k-mooney there is no way to avoid that im affriad
11:28:38 rmart04 eek. OK well thanks for this very useful info
11:52:28 jhartkopf Hey, I am currently working on the implementation for the approved spec for updating user data (https://review.opendev.org/c/openstack/nova-specs/+/816542). Part of the spec is to regenerate the config drive on hard reboots (reboot implementations are driver-specific). My approach would be to do this on every hard reboot as there seems to be no trivial way to check whether user data has been actually changed.
11:52:45 jhartkopf Would this be something that every driver needs to support? Any ideas/opinions on this?
11:55:13 sean-k-mooney jhartkopf: no this should be done only when requested
11:55:52 sean-k-mooney jhartkopf: the spec i tought said the hard-reboot api woudl be extended with a new paramter for this
11:57:57 sean-k-mooney jhartkopf: hum https://review.opendev.org/c/openstack/nova-specs/+/816542/7/specs/zed/approved/update-userdata.rst#96 might actully be insfficent
11:58:19 sean-k-mooney so that provide a way to update the metadta on hard reboot by providing the data again
11:59:08 sean-k-mooney but we likely shoudl have a seccodn boolean parmater like regenerate_configdrive=True|false
12:00:10 sean-k-mooney gibi: ^ what do you think?
12:00:27 sean-k-mooney im not sure we want the perfomance hit of always regenerating the config drive on hard reboot
12:00:59 sean-k-mooney jhartkopf: it should be implmented for all drivers that support config drive ideally but if you started with just libvirt that proably would cover most usecases
12:02:03 gibi so the user_data parameter on reboot will be optional, isn't it?
12:02:09 sean-k-mooney jhartkopf: actully the other way to do this is to store a flag in the instance_system_metadata
12:02:22 sean-k-mooney gibi: yes but the edge case here is
12:02:40 sean-k-mooney how to regenerate teh config drive if i have use server update
12:02:51 sean-k-mooney to modify the user data on the next reboot
12:03:28 sean-k-mooney jhartkopf: gibi so what we could do is add a flag to the instance_system_metadata to track that the config drive is dirty
12:03:36 sean-k-mooney and then check that on reboot and clear it
12:03:59 sean-k-mooney if its dirty regenerate the config drive with the new data if not use the exisitng one
12:04:25 gibi ahh I see
12:04:49 sean-k-mooney the user data on hard reboot is for when you want to fully replace it on reboot
12:05:02 gibi I'm fine with a flag in system meta
12:05:02 sean-k-mooney which is how i woudl expect this to be used most offten honestly
12:05:17 jhartkopf sean-k-mooney: Yes, so with an additional variable, we could track if the config drive should be regenerated or not
12:06:00 sean-k-mooney jhartkopf: yep the instance_system_metadata table is internal to nova and jsut a key value pair with the instance as a primary key
12:06:31 sean-k-mooney jhartkopf: so you can jsut add a flag to that on server update if you update the user-data field
12:07:17 sean-k-mooney then reboot can check it and clear it. does ^ work for you
12:07:37 sean-k-mooney if so we can leave the spec as it is.
12:10:22 jhartkopf Seems to be the part that was missing, thanks! I will then try to implement this for libvirt initially.
12:15:39 sean-k-mooney jhartkopf: just an fyi the instance system metadata is a feild on the instance object https://github.com/openstack/nova/blob/master/nova/objects/instance.py#L194=
12:16:14 sean-k-mooney so you will have direct access to that in the driver and you will be able to update it on save as part of the reboot flow
12:17:24 sean-k-mooney just set the key config_drive_dirty flag to false and it will be save when we next call save i.e. when we update the task/vm state
12:18:51 sean-k-mooney jhartkopf: if you want you can expose this directly as a property on the instance object to keep it clean so that the virt driver dont need to check the system metadata directly.
12:19:06 sean-k-mooney just have the property update the system metadata
12:33:24 jhartkopf sean-k-mooney: good point, I will look into this
13:11:24 bauzas sean-k-mooney: gibi: fwiw, I'm currently reviewing the hard https://review.opendev.org/c/openstack/nova/+/829248/9/nova/compute/manager.py
13:11:46 bauzas (that and doing some expense report...)
13:12:22 sean-k-mooney i dont think i have used concour sicne we switch to it
13:12:42 sean-k-mooney but if its like the deployment of concour we had at intel its much nicer
13:12:54 sean-k-mooney then the oracle suite we used to use for expenses
13:12:56 gibi expense was easy but that single line in the manager seems easier :D
13:12:57 bauzas concur is good for preparing your report
13:13:25 bauzas but there are some bugs in the concur android app
13:13:36 bauzas I can't modify some expenses
13:13:49 sean-k-mooney ah ok i have only really used the web app
13:13:59 sean-k-mooney i dont like haveing compay stuff on my personal phone
13:14:35 sean-k-mooney so i jsut take pictures fo the recipts and email them to my company adress and fill it out after the fact
13:15:38 gibi bauzas: yepp I had issues with the app but I was able to fix it with the web based too
13:15:41 gibi l
13:16:27 gibi I guess you hit the issue with setting expense type to ~food and the app asking for some additional fields that was not editable
13:17:38 bauzas gibi: yup
13:18:15 bauzas gibi: yeah, I provided all my receipts to concur thanks to the android app when waiting for my flight :)
13:18:31 bauzas gibi: but eventually I got some problem with a meal and for my hotel expense
13:19:03 sean-k-mooney bauzas: not to add to your paper work but are you plannign to send a writeup or operator feedback to the list or similar
13:19:06 bauzas but eventually, today I used the webapp and I was able to modify the expenses correctly

Earlier   Later