Re: [libvirt] [PATCH v2 17/23] conf: convert over to use GRegex for regular expressions

2019-10-10 Thread Daniel P . Berrangé
On Wed, Oct 09, 2019 at 10:08:32AM +0200, Bjoern Walk wrote:
> Daniel P. Berrangé  [2019-10-07, 06:14PM +0100]:
> > @@ -2306,20 +2304,17 @@ 
> > virDomainQemuMonitorEventStateRegisterID(virConnectPtr conn,
> >  return -1;
> >  data->flags = flags;
> >  if (event && flags != -1) {
> > -int rflags = REG_NOSUB;
> > -
> > -if (flags & VIR_CONNECT_DOMAIN_QEMU_MONITOR_EVENT_REGISTER_NOCASE)
> > -rflags |= REG_ICASE;
> >  if (flags & VIR_CONNECT_DOMAIN_QEMU_MONITOR_EVENT_REGISTER_REGEX) {
> > -int err = regcomp(&data->regex, event, rflags);
> > +int cflags = 0;
> 
> Do we want to use G_REGEX_OPTIMIZE here?

Yes, makes sense for this one as we compile it once and then us it
to match every single event emitted on every guest. So the optimization
cost will be mitigated by improved matching performance.

Regards,
Daniel
-- 
|: https://berrange.com  -o-https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o-https://fstop138.berrange.com :|
|: https://entangle-photo.org-o-https://www.instagram.com/dberrange :|

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH v2 17/23] conf: convert over to use GRegex for regular expressions

2019-10-09 Thread Bjoern Walk
Daniel P. Berrangé  [2019-10-07, 06:14PM +0100]:
> @@ -2306,20 +2304,17 @@ 
> virDomainQemuMonitorEventStateRegisterID(virConnectPtr conn,
>  return -1;
>  data->flags = flags;
>  if (event && flags != -1) {
> -int rflags = REG_NOSUB;
> -
> -if (flags & VIR_CONNECT_DOMAIN_QEMU_MONITOR_EVENT_REGISTER_NOCASE)
> -rflags |= REG_ICASE;
>  if (flags & VIR_CONNECT_DOMAIN_QEMU_MONITOR_EVENT_REGISTER_REGEX) {
> -int err = regcomp(&data->regex, event, rflags);
> +int cflags = 0;

Do we want to use G_REGEX_OPTIMIZE here?

> +g_autoptr(GError) err = NULL;
>  
> -if (err) {
> -char error[100];
> -regerror(err, &data->regex, error, sizeof(error));
> +if (flags & 
> VIR_CONNECT_DOMAIN_QEMU_MONITOR_EVENT_REGISTER_NOCASE)
> +cflags |= G_REGEX_CASELESS;
> +data->regex = g_regex_new(event, cflags, 0, &err);
> +if (!data->regex) {
>  virReportError(VIR_ERR_INVALID_ARG,
> _("failed to compile regex '%s': %s"),
> -   event, error);
> -regfree(&data->regex);
> +   event, err->message);
>  VIR_FREE(data);
>  return -1;
>  }
> -- 
> 2.21.0
> 
> --
> libvir-list mailing list
> libvir-list@redhat.com
> https://www.redhat.com/mailman/listinfo/libvir-list

-- 
IBM Systems
Linux on Z & Virtualization Development
--
IBM Deutschland Research & Development GmbH
Schönaicher Str. 220, 71032 Böblingen
Phone: +49 7031 16 1819
--
Vorsitzende des Aufsichtsrats: Matthias Hartmann
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294


signature.asc
Description: PGP signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Re: [libvirt] [PATCH v2 17/23] conf: convert over to use GRegex for regular expressions

2019-10-08 Thread Ján Tomko

On Mon, Oct 07, 2019 at 06:14:19PM +0100, Daniel P. Berrangé wrote:

Reviewed-by: Pavel Hrdina 
Signed-off-by: Daniel P. Berrangé 
---
src/conf/domain_event.c | 25 ++---
1 file changed, 10 insertions(+), 15 deletions(-)



Reviewed-by: Ján Tomko 

Jano


signature.asc
Description: PGP signature
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list