lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Tue, 22 May 2018 21:43:00 +0200
From:   Greg KH <gregkh@...uxfoundation.org>
To:     Reinette Chatre <reinette.chatre@...el.com>
Cc:     tglx@...utronix.de, fenghua.yu@...el.com, tony.luck@...el.com,
        vikas.shivappa@...ux.intel.com, gavin.hindman@...el.com,
        jithu.joseph@...el.com, dave.hansen@...el.com, mingo@...hat.com,
        hpa@...or.com, x86@...nel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH V4 34/38] x86/intel_rdt: Create debugfs files for
 pseudo-locking testing

On Tue, May 22, 2018 at 04:29:22AM -0700, Reinette Chatre wrote:
> @@ -149,6 +151,9 @@ struct pseudo_lock_region {
>  	unsigned int		line_size;
>  	unsigned int		size;
>  	void			*kmem;
> +#ifdef CONFIG_INTEL_RDT_DEBUGFS
> +	struct dentry		*debugfs_dir;
> +#endif

Who cares, just always have this here, it's not going to save you
anything to #ifdef the .c code everywhere just for this one pointer.

> @@ -174,6 +180,9 @@ static void pseudo_lock_region_clear(struct pseudo_lock_region *plr)
>  		plr->d->plr = NULL;
>  	plr->d = NULL;
>  	plr->cbm = 0;
> +#ifdef CONFIG_INTEL_RDT_DEBUGFS
> +	plr->debugfs_dir = NULL;
> +#endif

See?  Ick.

> +	ret = strtobool(buf, &bv);
> +	if (ret == 0 && bv) {
> +		ret = debugfs_file_get(file->f_path.dentry);
> +		if (unlikely(ret))
> +			return ret;

Only ever use unlikely/likely if you can measure the performance
difference.  Hint, you can't do that here, it's not needed at all.

> +#ifdef CONFIG_INTEL_RDT_DEBUGFS
> +	plr->debugfs_dir = debugfs_create_dir(rdtgrp->kn->name,
> +					      debugfs_resctrl);
> +	if (IS_ERR(plr->debugfs_dir)) {
> +		ret = PTR_ERR(plr->debugfs_dir);
> +		plr->debugfs_dir = NULL;
> +		goto out_region;

Ick no, you never need to care about the return value of a debugfs call.
You code should never do something different if a debugfs call succeeds
or fails.  And you are checking it wrong, even if you did want to do
this :)

> +	}
> +
> +	entry = debugfs_create_file("pseudo_lock_measure", 0200,
> +				    plr->debugfs_dir, rdtgrp,
> +				    &pseudo_measure_fops);
> +	if (IS_ERR(entry)) {
> +		ret = PTR_ERR(entry);
> +		goto out_debugfs;
> +	}

Again, you don't care, don't do this.

> +#ifdef CONFIG_INTEL_RDT_DEBUGFS
> +	debugfs_remove_recursive(rdtgrp->plr->debugfs_dir);
> +#endif

Don't put ifdefs in .c files, it's not the Linux way at all.  You can
make this a lot simpler/easier to maintain over time if you do not.

thanks,

greg k-h

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ