Thread (15 messages) flat view 15 messages, 6 authors, 2026-08-06

Re: [PATCH v2] powerpc/64s: Clarify copy_and_flush() cache sync loop comment

From: Amit Machhiwal <hidden>
Date: 2026-07-17 11:55:58
Also in: lkml

On 2026/07/09 11:40 AM, Nikhil Kumar Singh wrote:
Hi Mukesh,

Ideally, checkpatch should take care of this, I see no checkpatch errors.
That is because the default $max_line_length is set to 100 columns in
checkpatch.pl scripts. The kernel coding style document recommends 80,
but checkpatch enforces 100 unless you pass --max-line-length=80
explicitly.

  my $max_line_length = 100;

You will see the warnings being reported when you run the script as:

  ❯ scripts/checkpatch.pl ./v2_20260706_nikhilks_powerpc_64s_clarify_copy_and_flush_cache_sync_loop_comment.mbx --max-line-length=80
  WARNING: line length of 82 exceeds 80 columns
  #44: FILE: arch/powerpc/kernel/head_64.S:716:
  +4:	li	r0,8			/* r0 is the number of 8-byte words	*/
  [...]
  
  total: 0 errors, 12 warnings, 26 lines checked

I agree with Mukesh here and I think the comment should be fixed to fit
within 80 column width limit as staying within 80 columns is certainly
still preferred.

Thanks,
Amit
./scripts/checkpatch.pl
v2-0001-powerpc-64s-Clarify-copy_and_flush-cache-sync-loo.patch
total: 0 errors, 0 warnings, 26 lines checked

v2-0001-powerpc-64s-Clarify-copy_and_flush-cache-sync-loo.patch has no
obvious style problems and is ready for submission.
Thanks
~ Nikhil

On 07/07/26 12:48, Nikhil Kumar Singh wrote:
quoted
Hi Mukesh,

Thanks for reviewing the patch and for the suggestion.
I'd prefer to keep the current alignment as I find it a bit more
readable.

Thanks,
~ Nikhil

On 07/07/26 11:08, Mukesh Kumar Chaurasiya wrote:
quoted
On Mon, Jul 06, 2026 at 01:57:08PM +0530, Nikhil Kumar Singh wrote:
quoted
The value loaded into r0 in copy_and_flush() represents the number of
8-byte words processed between cache synchronization operations.

The existing comment refers to cache line size, which can make
it appear
that the value is a cache line size in bytes rather than a loop count.
Clarify the comment to explain that the loop processes 8 words
(64 bytes)
per cache synchronization iteration, and that increasing the
value would
skip cache maintenance for intermediate cache lines.

This is a comment-only change with no functional impact.

Signed-off-by: Nikhil Kumar Singh <redacted>
---
  arch/powerpc/kernel/head_64.S | 20 ++++++++++++--------
  1 file changed, 12 insertions(+), 8 deletions(-)
diff --git a/arch/powerpc/kernel/head_64.S
b/arch/powerpc/kernel/head_64.S
index 63432a33ec49..a54f6f979173 100644
--- a/arch/powerpc/kernel/head_64.S
+++ b/arch/powerpc/kernel/head_64.S
@@ -713,14 +713,18 @@ p_end: .8byte _end - copy_to_here
  _GLOBAL(copy_and_flush)
      addi    r5,r5,-8
      addi    r6,r6,-8
-4:    li    r0,8            /* Use the smallest common    */
-                    /* denominator cache line    */
-                    /* size.  This results in    */
-                    /* extra cache line flushes    */
-                    /* but operation is correct.    */
-                    /* Can't get cache line size    */
-                    /* from NACA as it is being    */
-                    /* moved too.            */
+4:    li    r0,8            /* r0 is the number of 8-byte words    */
+                    /* to copy per cache sync iteration. */
+                    /* 8 words * 8 bytes = 64 bytes. 64B is    */
+                    /* the current default cache line size.    */
+                    /* This is a loop count, not a byte    */
+                    /* count. Increasing it may skip    */
+                    /* dcbst/icbi for lines in between and */
+                    /* leave stale instructions in icache. */
+                    /* This results in extra cache line    */
+                    /* flushes but operation is correct. */
+                    /* Can't get cache line size from NACA */
+                    /* as it is being moved too.        */
The comment looks fine. But the alignement of the comment is still
different from earlier. Keep the alignment same as earlier, it looks a
little nicer.

Regards,
Mukesh
quoted
        mtctr    r0            /* put # words/line in ctr    */
  3:    addi    r6,r6,8            /* copy a cache line */
-- 
2.43.5
  
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help