cpu model bug fixes and definition corrections
PATCH 4/7 cpu model bug fixes and definition corrections
Failure by qemu to open a default config file isn't cause to
error exit -- it just quietly continues on. After puzzling
issues with otherwise opaque config file locations and startup handling numerous times, some help from qemu seemed justified.
In the case of a "?" pseudo filename arg to -readconfig, verbose open of all config files will be enabled. Normal handling of config files is otherwise unaffected by this option.
Note: other CLI flag schemes have been discussed at length to accommodate this option. However given the constraints of the existing user interface, a solution which minimally impacts the user is ultimately required.
---
qemu-config.c +19 -11
@@ -666,21 +666,29 @@ out:return res; } -int qemu_read_config_file (const char *filename) +/* attempt to open and parse config file, report problems if vflag +*/ +int qemu_read_config_file (const char *filename,int vflag) {FILE *f =fopen (filename,"r" ); -int ret; +int rv =0 ; +const char *err;if (f ==NULL ) { -return -errno; + rv = -errno; + err ="open" ; + }else if (qemu_config_parse (f, vm_config_groups, filename) !=0 ) { + rv = -EINVAL ; + err ="parse" ; + }else if (vflag) { +fprintf (stderr,"parsed config file %s\n" , filename); } - - ret =qemu_config_parse (f, vm_config_groups, filename); -fclose (f); - -if (ret ==0 ) { -return 0 ; - }else { -return -EINVAL ; +if (f) { +fclose (f); + } +if (rv && vflag) { +fprintf (stderr,"can't %s config file %s: %s\n" , + err, filename,strerror (-rv)); } +return rv; }
qemu-config.h +1 -1
@@ -14,6 +14,6 @@ void qemu_add_globals(void);void qemu_config_write (FILE *fp);int qemu_config_parse (FILE *fp,QemuOptsList **lists,const char *fname); -int qemu_read_config_file (const char *filename); +int qemu_read_config_file (const char *filename,int vflag);#endif /* QEMU_CONFIG_H */
vl.c +13 -7
@@ -2059,6 +2059,7 @@ int main(int argc, char **argv, char **envp)int show_vnc_port =0 ;#endif int defconfig =1 ; +int defconfig_verbose =0 ;const char *trace_file =NULL ;atexit (qemu_run_exit_notifiers);
@@ -2108,6 +2109,12 @@ int main(int argc, char **argv, char **envp)case QEMU_OPTION_nodefconfig: defconfig=0 ;break ; +case QEMU_OPTION_readconfig: +/* pseudo filename "?" enables verbose config file handling */ +if (!strcmp (optarg,"?" )) { + defconfig_verbose =1 ; + } +break ; } } }
@@ -2115,12 +2122,13 @@ int main(int argc, char **argv, char **envp)if (defconfig) {int ret; - ret =qemu_read_config_file (CONFIG_QEMU_CONFDIR "/qemu.conf" ); + ret =qemu_read_config_file (CONFIG_QEMU_CONFDIR "/qemu.conf" , + defconfig_verbose);if (ret <0 && ret != -ENOENT ) {exit (1 ); } - ret =qemu_read_config_file (arch_config_name); + ret =qemu_read_config_file (arch_config_name, defconfig_verbose);if (ret <0 && ret != -ENOENT ) {exit (1 ); }
@@ -2857,11 +2865,9 @@ int main(int argc, char **argv, char **envp)#endif case QEMU_OPTION_readconfig: { -int ret =qemu_read_config_file (optarg); -if (ret <0 ) { -fprintf (stderr,"read config %s: %s\n" , optarg, -strerror (-ret)); -exit (1 ); +if (strcmp (optarg,"?" ) && +qemu_read_config_file (optarg, defconfig_verbose) <0 ) { +exit (1 ); }break ; }
Signature · 1 line
[email protected]
Starting with this patch, the series lacks proper subjects. Please also avoid such long subject lines. The background can be explained in the introduction mail (threading your mails would be nice as well, check git format-patch). Rather us short tags for the patches, describing the subsystem/target-arch they touch.
Quoted 11 lines · john cooper
Failure by qemu to open a default config file isn't cause to
error exit -- it just quietly continues on. After puzzling
issues with otherwise opaque config file locations and startup handling numerous times, some help from qemu seemed justified.In the case of a "?" pseudo filename arg to -readconfig, verbose open of all config files will be enabled. Normal handling of config files is otherwise unaffected by this option.
Quoted 4 lines
Note: other CLI flag schemes have been discussed at length to accommodate this option. However given the constraints of the existing user interface, a solution which minimally impacts the user is ultimately required.
Does this patch also fix the loading of CPU configs when starting qemu directly from the build folder? That would be warmly welcome!
Jan
Signature · 2 lines
Siemens AG, Corporate Technology, CT T DE IT 1 Corporate Competence Center Embedded Linux