From: Takashi Iwai <tiwai@suse.de>
To: Mark Brown <broonie@kernel.org>
Cc: linux-kernel@vger.kernel.org
Subject: Re: regcache_sync() errors for read-only registers cache
Date: Tue, 03 Mar 2015 16:33:21 +0100 [thread overview]
Message-ID: <s5h7fuyyu2m.wl-tiwai@suse.de> (raw)
In-Reply-To: <20150303145438.GY21293@sirena.org.uk>
At Tue, 3 Mar 2015 14:54:38 +0000,
Mark Brown wrote:
>
> On Tue, Mar 03, 2015 at 10:22:59AM +0100, Takashi Iwai wrote:
> > Mark Brown wrote:
>
> > > > The --scissors option of git am is your friend.
>
> > > That's still pain.
>
> > But it's still better than sending two mails even if you don't know
> > whether it's the right patch. It's even not tag as an RFC. The patch
> > was there just as a reference.
>
> I actually find it harder to work with TBH - it breaks up the mail to
> have the extra stuff around the code in there and it's harder to apply
> if it's OK. During a discussion it feels more natural to just have the
> diff hunk with the mail text around it instead.
Well, this is just a matter of taste, IMO :)
I find a full patch is always better, if any.
> > > Well, it's either that or adding the values read back from the chip to
> > > the defaults.
>
> > For fixing the single rw, it's easy in either way (although the latter
> > sounds bad from the performance POV). But what about the block rw?
>
> Why should adding something to the defaults hurt performance (it should
> just be a one time cost to insert the default which we've got a
> reasonable chance of making back later)? I guess if there's a lot of
> these registers it'll add up but they're pretty rare, usually it's a few
> ID and revision registers and anything else is volatile so wouldn't get
> cached at all.
I caught this bug because of the currently developed HD-audio regmap
support that has lots of read-only stuff (mostly for parameters, dozen
of such per each widget node). Registers range of 32bit wide and
there are no static default values that can be stored in a flat
table. Nasty, eh? I'll be glad if any better workaround is present
in regmap.
> Block I/O can just get the same fix I think, the logic is basically the
> same it's just what we do with differences that changes.
Yeah, looks so.
> > > > regmap_wrietable() call in _regmap_write().
>
> > > It's superfluous with respect to what? Still a bit confused, sorry.
>
> > regmap_writeable() is called twice in that code path with my patch.
> > First before calling _regmap_write() and again in _regmap_write().
> > The second call is superfluous in this code path although it's needed
> > for other paths.
>
> > regmap_writeable() isn't usually that heavy, but it's still
> > suboptimal.
>
> Oh, right. The two checks are logically distinct to me - the check in
> _write() is more of an assert than something that's expected to go off,
> anything relying on it is in trouble, while the one in the cache sync is
> there as part of normal operation. If anyone cared about performance to
> that extent it probably ought to be a build option to even check though
> since the I/O is generally so slow and it's rare to implement writeable
> at all it doesn't normally matter.
Right, that's my assumption. But I wasn't sure whether it was
acceptable.
I can resend the patch if you prefer, of course, if the original patch
is OK. Just let me know.
thanks,
Takashi
next prev parent reply other threads:[~2015-03-03 15:33 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-27 12:59 Takashi Iwai
2015-03-02 18:24 ` Mark Brown
2015-03-02 19:15 ` Takashi Iwai
2015-03-03 9:09 ` Mark Brown
2015-03-03 9:22 ` Takashi Iwai
2015-03-03 14:54 ` Mark Brown
2015-03-03 15:33 ` Takashi Iwai [this message]
2015-03-03 20:04 ` Mark Brown
2015-03-03 22:00 ` Takashi Iwai
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=s5h7fuyyu2m.wl-tiwai@suse.de \
--to=tiwai@suse.de \
--cc=broonie@kernel.org \
--cc=linux-kernel@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®