| Posted | Nick | Remark | |
|---|---|---|---|
| #openstack-nova - 2020-03-13 | |||
| 15:40:48 | kashyap | melwitt: I didn't notice it earlier, but confusingly the method is returning 'mode', while the actual content is 'model': https://review.opendev.org/#/c/709494/3/nova/virt/libvirt/utils.py | |
| 15:41:09 | kashyap | melwitt: I'll add some words in the change; didn't notice it before. | |
| 15:41:54 | melwitt | kashyap: yeah, me neither. though that's not the fault of that patch, right? | |
| 15:42:05 | melwitt | or are you saying the patch is returning the wrong thing | |
| 15:42:24 | kashyap | melwitt: You're right - not the fault of the patch; it's existing | |
| 15:42:47 | kashyap | melwitt: We can change that later, but the core idea (on the basis to set up a CI) is good | |
| 15:43:33 | kashyap | melwitt: I just asked the upstream QEMU AArch64 folks about the model chosen in the patch ('cortex-a57'). I'll report back on the patch. | |
| 15:43:41 | sean-k-mooney | brinzhang: i used a windows laptop basically as a thin client with cygwin and ssh to linux server most of my time working upstream | |
| 15:44:19 | sean-k-mooney | brinzhang: i only started runing linux on my main worstation/laptop when i left intel as we were required to use windows on the it provisioned laptop | |
| 15:44:47 | melwitt | kashyap: ok. yeah, I wasn't sure about the order and placement of the aarch64 checks. and maybe could use some code comments | |
| 15:44:53 | sean-k-mooney | also i like kolla. its easy to debug and uses | |
| 15:45:12 | kashyap | melwitt: Yes, defintely +1 on the code comments. | |
| 15:47:00 | brinzhang | sean-k-mooney: we are same, I think you like to use linux | |
| 15:48:01 | sean-k-mooney | i do but i dont dislike windoes either. | |
| 15:51:00 | brinzhang | sean-k-mooney: yeah, what suits you is the best :) | |
| 15:52:19 | brinzhang | it's time too later for me, I will go, thanks damsmith, mriedem, kashyap, sean-k-mooney (good morning) ^^ | |
| 16:04:50 | kashyap | melwitt: Ah, only noticed your comments _after_ I've hit send on mine. Along with your questions, I have added a few more. | |
| 16:06:01 | melwitt | kashyap: cool, better to have more comments to show if there's any agreement or if I'm only asking dumb questions :P | |
| 16:06:27 | kashyap | melwitt: No, just reading your questions; you make perfectly valid points there. | |
| 16:06:45 | kashyap | You are not a mind reader to know the intention; so asking for code comments is the only reasonable thing :D | |
| 16:08:10 | melwitt | this stuff is greek to me. I'd rather have some explanations there for those that venture to the code in the future, looking to refactor or whatever | |
| 16:08:17 | kashyap | melwitt: Okay, got some more input from QEMU maintainer (Peter Maydell) - he has special interest in AArc64 - I'll add it in the change. He recommends a bunch of things. | |
| 16:08:34 | melwitt | awesome! | |
| 16:09:35 | kashyap | melwitt: I know the mechanics of how QEMU handles things; but the innards of AArch64 and the usage is Greek for me too. (I find Greek aesthetically pleasing, though. I have a couple of books with Greek on left, the English translation on right. :D) | |
| 16:09:48 | melwitt | :) | |
| 16:19:03 | melwitt | kashyap: is this libvirt kvm aarch64 (which is mentioned on feature support matrix)? or is it libvirt qemu aarch64 (not on feature support matrix yet)? https://docs.openstack.org/nova/train/user/support-matrix.html | |
| 16:19:33 | kashyap | melwitt: Yeah, there was two things: | |
| 16:19:56 | kashyap | s/was/are/ | |
| 16:21:42 | kashyap | (1) TCG (the emulatd bits), or what is also referred to as "QEMU"-only; and (2) KVM (with hardware accelerated) in context of AArch64. I guess we want 'care' about both | |
| 16:22:04 | kashyap | Luckily, Peter from QEMU informs that for _both TCG/KVM, we can just use one model: 'max' | |
| 16:22:12 | kashyap | (Comments on why upcoming...) | |
| 16:22:32 | melwitt | kashyap: ok, so the proposed patches aren't for one in particular only | |
| 16:23:13 | kashyap | melwitt: Although for CI, perhaps the dev just cares about QEMU (TCG). Just like how Nova x86 CI runs on TCG guests (because no nested, to get KVM). | |
| 16:23:25 | kashyap | Not sure if I'm helping or confusing :D | |
| 16:23:40 | melwitt | uh ... helping a little :) but it's not you, it's me | |
| 16:23:59 | melwitt | I'm just trying to write something on the lp bug for the patch above the one we've been looking at | |
| 16:24:57 | sean-k-mooney | kashyap: what is the max model usef for? | |
| 16:24:57 | melwitt | the bug is unable to attach volume to instance with config drive on arm64 and according to the feature support matrix the support is "unknown" so I was thinking to set the bug Low based on that https://docs.openstack.org/nova/latest/user/support-matrix.html#operation_attach_volume_driver_libvirt_kvm_aarch64 | |
| 16:25:03 | kashyap | melwitt: I see. I'll collect thoughts and write it in the change, and we can take it from there. | |
| 16:25:49 | kashyap | sean-k-mooney: The 'max' model will apparently give you the moving-target of "all the stuff we [QEMU] can currently emulate". | |
| 16:26:46 | kashyap | melwitt: Yeah, 'low' for now is fine. | |
| 16:26:48 | sean-k-mooney | kashyap: so totally non portable | |
| 16:27:01 | sean-k-mooney | kashyap: where is max used | |
| 16:27:26 | sean-k-mooney | e.g.is it a cpu model or a scisi contoler or what | |
| 16:27:31 | kashyap | sean-k-mooney: Well, the recommendation from the AArch64 experts is to use 'max' for _both_ TCG and KVM: | |
| 16:27:36 | kashyap | ... "unless you really specifically want an always-the-same-thing even in newer QEMU versions fixed target". | |
| 16:27:44 | sean-k-mooney | im trying to figure out the context | |
| 16:27:52 | kashyap | Please read the scrollback with Mel. | |
| 16:28:01 | kashyap | It's in context of https://review.opendev.org/#/c/709494/ | |
| 16:28:04 | sean-k-mooney | ya i was trying to and could not fiutre it out | |
| 16:28:29 | sean-k-mooney | so this has changed form the old advise of use the VIRT cpu model | |
| 16:28:42 | melwitt | kashyap: yeah so I think what should likely happen is that once they have the CI set up and running we will update the feature support matrix with all of the things that are working in the CI? | |
| 16:31:09 | kashyap | sean-k-mooney: No, no you're mixing up CPU model and machine type for AArch64 | |
| 16:31:20 | kashyap | sean-k-mooney: 'virt' is still the recommended machine type for AArch64. | |
| 16:31:32 | kashyap | melwitt: Yeap. | |
| 16:31:33 | sean-k-mooney | ah yes i am | |
| 16:31:45 | melwitt | cool | |
| 16:31:54 | sean-k-mooney | this still will cause issue for live migration if we use max | |
| 16:32:08 | sean-k-mooney | so i dont know if that is a good default | |
| 16:32:13 | kashyap | melwitt: I _think_ first want to care about TCG, because for KVM, you'd need AArch64 hardware in the CI | |
| 16:32:25 | kashyap | sean-k-mooney: I've talked to the AArch64 maintainer, I'm posting the recommendations in the patch. | |
| 16:32:31 | sean-k-mooney | kashyap: we have AArch64 hardware in ci | |
| 16:32:33 | melwitt | kashyap: ack | |
| 16:32:46 | sean-k-mooney | kashyap: thats the whole point lenario donated some | |
| 16:32:49 | kashyap | sean-k-mooney: Good, then. We've got the recommendations for that, too. | |
| 16:32:56 | melwitt | kashyap: so do you think TCG would be a separate column in the matrix? | |
| 16:32:58 | kashyap | Linaro, I take it. Yeah | |
| 16:33:05 | kashyap | melwitt: Yeah, I'd say so. | |
| 16:33:08 | sean-k-mooney | ah yes | |
| 16:33:14 | melwitt | ok. thanks for explaining all this | |
| 16:33:16 | kashyap | (We need to clearly distinguish both cases.) | |
| 16:33:25 | kashyap | No worries, I need to refresh this every few months mysel f:D | |
| 16:33:34 | melwitt | :) | |
| 16:33:53 | sean-k-mooney | kashyap: we proably should be using the cpu_mode config option to define this | |
| 16:34:30 | sean-k-mooney | e.g. tie it in to host-passthough and host-model some how | |
| 16:35:37 | stephenfin | sean-k-mooney: how strongly do you feel about https://review.opendev.org/#/c/468203 ? | |
| 16:35:45 | stephenfin | specifically jaypipes arguments there | |
| 16:35:47 | kashyap | sean-k-mooney: One thing at a time :-) | |
| 16:36:00 | sean-k-mooney | im also not sure how i feel about htis being a bug, it fells more like a specless blueprint but im not going to really object too stronly to it beign a bug | |
| 16:37:00 | stephenfin | I ask because I'm trying to decide how to say "these cores should be dedicated" in a mixed instance | |
| 16:37:16 | sean-k-mooney | kashyap: well for now they could jsut use cpu_mode=custom and cpu_model=max or cpu_model=min right | |
| 16:37:35 | stephenfin | Currently I'm going with 'hw:cpu_dedicated_mask', which is a CPU list | |
| 16:37:38 | sean-k-mooney | stephenfin: am ill take a look now | |
| 16:37:48 | sean-k-mooney | stephenfin: ya i would be fine with that | |
| 16:37:55 | sean-k-mooney | stephenfin: whats the other option | |
| 16:38:05 | stephenfin | there are a few | |
| 16:38:34 | stephenfin | in this scenario that I'm following, you'll be able to use hw:cpu_dedicated_mask *or* hw:cpu_realtime_mask | |
| 16:38:59 | sean-k-mooney | stephenfin: no you would use both | |
| 16:39:01 | stephenfin | I see no reason to say these cores are shared, these are dedicated but non-realtime, and these are dedicated and realtime | |
| 16:39:04 | sean-k-mooney | well optinally | |
| 16:39:16 | sean-k-mooney | e.g. not an exclucive or | |
| 16:39:41 | sean-k-mooney | i dont see a reason to block it | |
| 16:39:41 | stephenfin | why? What real-world user is going to use all three types of core in an instance? | |
| 16:39:49 | stephenfin | Because it's less complicated | |
| 16:39:55 | sean-k-mooney | its more complicated | |
| 16:40:20 | sean-k-mooney | the validation logic to prevent all 3 is extra logic we dont need if we allow it | |
| 16:40:45 | stephenfin | A|B is easier grok than A.issubset(B) | |
| 16:40:56 | stephenfin | and the it makes my XML generation easier | |
| 16:41:02 | stephenfin | s/the // | |
| 16:41:04 | sean-k-mooney | stephenfin: you are over loading hw:cpu_realtime_mask | |