[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [PATCH v2 07/17] libxc/restore: STATIC_DATA_END inference for v2 compatibility
On 05/03/2020 16:24, Ian Jackson wrote: > Andrew Cooper writes ("Re: [PATCH v2 07/17] libxc/restore: STATIC_DATA_END > inference for v2 compatibility"): >> On 24/02/2020 17:32, Ian Jackson wrote: >>> These 17 lines appears twice, in basically identical form. Could it >>> be refactored ? >> Not really, no. >> >> The error handling (i.e. half of those 17 lines) is different, making it >> somewhat awkward to fit into a static inline. > You could handle that with a small bit of code around one of the call > sites to adjust the error handling. (Also, what a mess, but I guess > we're here now...) ... which is the majority the code you're trying to abstract away. > >> More importantly however, by design, common code can't call >> arch-specific code without a restore_ops hook. Deduping these would >> require breaking the restriction which is currently doing a decent job >> of keeping x86-isms out of common code. > I'm afraid you're going to have to explain that to me at a bit greater > length. The biggest thing that is confusing me about your statement > here is that your patch is indeed adding x86-specific code to a common > file. But also I don't understand the comment about restore_ops > hooks - do you mean something in restore_callbacks ? No. restore_callbacks are plumbing between libxl-save-helper and libxc. restore_ops are internal to the restore code, and come in x86_pv and x86_hvm flavours, with ARM existing in some theoretical future. The design of the common save/restore code had deliberate measures put in place to make it hard to get arch-specific details slip into common code, so porting to different architectures didn't have to start by doing a bunch of cleanup. tl;dr I could put an #ifdef x86'd static inline in the root common header (xc_sr_common.h), but the overall complexity is greater than what is presented here. ~Andrew
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |