From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Chen, Tiejun" Subject: Re: [v7][PATCH 16/16] tools: parse to enable new rdm policy parameters Date: Fri, 10 Jul 2015 14:05:31 +0800 Message-ID: <559F60AB.2060402@intel.com> References: <1436420047-25356-1-git-send-email-tiejun.chen@intel.com> <1436420047-25356-17-git-send-email-tiejun.chen@intel.com> <21918.48191.157583.452591@mariner.uk.xensource.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <21918.48191.157583.452591@mariner.uk.xensource.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: Ian Jackson Cc: Stefano Stabellini , Wei Liu , Ian Campbell , xen-devel@lists.xen.org List-Id: xen-devel@lists.xenproject.org > The first issue (which would really be relevant to the documentation > patch) is that the documentation is in a separate commit. There are > sometimes valid reasons for doing this. I'm not sure if they apply, Wei suggested we should organize/spit all patches according to libxl, libxc, xc and xl. > but if they do this should be explained in one of the commit > messages. If this was done I'm afraid I have missed it. In this patch head description, maybe I can change something like this This patch parses to enable user configurable parameters to specify RDM resource and according policies which are defined previously, > >> + }else if ( !strcmp(optkey, "rdm_policy") ) { >> + if ( !strcmp(tok, "strict") ) { >> + pcidev->rdm_policy = LIBXL_RDM_RESERVE_POLICY_STRICT; >> + } else if ( !strcmp(tok, "relaxed") ) { >> + pcidev->rdm_policy = LIBXL_RDM_RESERVE_POLICY_RELAXED; >> + } else { >> + XLU__PCI_ERR(cfg, "%s is not an valid PCI RDM property" >> + " policy: 'strict' or 'relaxed'.", >> + tok); >> + goto parse_error; >> + } > > This section has coding style (whitespace) problems and long lines. > If you need to respin, please fix them. Are you saying this? } else if ( -> }else if ( } else { -> }else { Additionally I don't found which line is over 80 characters. > >> + for (tok = ptr, end = ptr + strlen(ptr) + 1; ptr < end; ptr++) { >> + switch(state) { >> + case STATE_TYPE: >> + if (*ptr == '=') { >> + state = STATE_RDM_STRATEGY; >> + *ptr = '\0'; >> + if (strcmp(tok, "strategy")) { >> + XLU__PCI_ERR(cfg, "Unknown RDM state option: %s", tok); >> + goto parse_error; >> + } >> + tok = ptr + 1; >> + } > > This code is extremely repetitive. > I just refer to xlu_pci_parse_bdf() switch(state) { case STATE_DOMAIN: if ( *ptr == ':' ) { state = STATE_BUS; *ptr = '\0'; if ( hex_convert(tok, &dom, 0xffff) ) goto parse_error; tok = ptr + 1; } break; > Really I would prefer that this parsing was done with a miniature flex > parser, rather than ad-hoc pointer arithmetic and use of strtok. Sorry, could you show this explicitly? Thanks Tiejun