From: kernel test robot <lkp@intel.com>
To: Alex Markuze <amarkuze@redhat.com>
Cc: llvm@lists.linux.dev, oe-kbuild-all@lists.linux.dev,
ceph-devel@vger.kernel.org
Subject: [ceph-client:tls-tracing-only 10/10] fs/ceph/blog_debugfs.c:26: warning: Function parameter or struct member 's' not described in 'blog_entries_show'
Date: Fri, 15 Aug 2025 04:12:44 +0800 [thread overview]
Message-ID: <202508150401.905dissE-lkp@intel.com> (raw)
tree: https://github.com/ceph/ceph-client.git tls-tracing-only
head: 6b738aa5f6bb2343f8277d318ff1e9ea9289212c
commit: 6b738aa5f6bb2343f8277d318ff1e9ea9289212c [10/10] proper isolation
config: s390-allmodconfig (https://download.01.org/0day-ci/archive/20250815/202508150401.905dissE-lkp@intel.com/config)
compiler: clang version 18.1.8 (https://github.com/llvm/llvm-project 3b5b5c1ec4a3095ab096dd780e84d7ab81f3d7ff)
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250815/202508150401.905dissE-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202508150401.905dissE-lkp@intel.com/
All warnings (new ones prefixed by >>):
>> fs/ceph/blog_debugfs.c:26: warning: Function parameter or struct member 's' not described in 'blog_entries_show'
>> fs/ceph/blog_debugfs.c:26: warning: Function parameter or struct member 'p' not described in 'blog_entries_show'
>> fs/ceph/blog_debugfs.c:100: warning: Function parameter or struct member 's' not described in 'blog_stats_show'
>> fs/ceph/blog_debugfs.c:100: warning: Function parameter or struct member 'p' not described in 'blog_stats_show'
>> fs/ceph/blog_debugfs.c:138: warning: Function parameter or struct member 's' not described in 'blog_sources_show'
>> fs/ceph/blog_debugfs.c:138: warning: Function parameter or struct member 'p' not described in 'blog_sources_show'
>> fs/ceph/blog_debugfs.c:189: warning: Function parameter or struct member 's' not described in 'blog_clients_show'
>> fs/ceph/blog_debugfs.c:189: warning: Function parameter or struct member 'p' not described in 'blog_clients_show'
>> fs/ceph/blog_debugfs.c:232: warning: Function parameter or struct member 'file' not described in 'blog_clear_write'
>> fs/ceph/blog_debugfs.c:232: warning: Function parameter or struct member 'buf' not described in 'blog_clear_write'
>> fs/ceph/blog_debugfs.c:232: warning: Function parameter or struct member 'count' not described in 'blog_clear_write'
>> fs/ceph/blog_debugfs.c:232: warning: Function parameter or struct member 'ppos' not described in 'blog_clear_write'
vim +26 fs/ceph/blog_debugfs.c
18
19 /**
20 * blog_entries_show - Show all BLOG entries for Ceph
21 *
22 * Iterates through all contexts and their pagefrags, deserializing entries
23 * using BLOG's deserialization with Ceph's client callback
24 */
25 static int blog_entries_show(struct seq_file *s, void *p)
> 26 {
27 struct blog_tls_ctx *ctx;
28 struct blog_log_iter iter;
29 struct blog_log_entry *entry;
30 char output_buf[1024];
31 int ret;
32 int entry_count = 0;
33 int ctx_count = 0;
34
35 seq_printf(s, "Ceph BLOG Entries\n");
36 seq_printf(s, "=================\n\n");
37
38 /* Access the global logger - need to be careful here */
39 spin_lock(&g_blog_logger.lock);
40
41 list_for_each_entry(ctx, &g_blog_logger.contexts, list) {
42 ctx_count++;
43 seq_printf(s, "Context %d (ID: %llu, PID: %d, Comm: %s)\n",
44 ctx_count, ctx->id, ctx->pid, ctx->comm);
45 seq_printf(s, " Base jiffies: %lu, Refcount: %d\n",
46 ctx->base_jiffies, atomic_read(&ctx->refcount));
47
48 /* Initialize iterator for this context's pagefrag */
49 blog_log_iter_init(&iter, &ctx->pf);
50
51 /* Iterate through all entries in this context */
52 while ((entry = blog_log_iter_next(&iter)) != NULL) {
53 entry_count++;
54
55 /* Clear output buffer */
56 memset(output_buf, 0, sizeof(output_buf));
57
58 /* Use blog_des_entry with Ceph's client callback */
59 ret = blog_des_entry(entry, output_buf, sizeof(output_buf),
60 ceph_blog_client_des_callback);
61
62 if (ret < 0) {
63 seq_printf(s, " Entry %d: [Error deserializing: %d]\n",
64 entry_count, ret);
65 } else {
66 /* Show entry details */
67 seq_printf(s, " Entry %d (ts_delta=%u, src=%u, client=%u, len=%u):\n",
68 entry_count, entry->ts_delta, entry->source_id,
69 entry->client_id, entry->len);
70 seq_printf(s, " %s\n", output_buf);
71 }
72 }
73 seq_printf(s, "\n");
74 }
75
76 spin_unlock(&g_blog_logger.lock);
77
78 seq_printf(s, "Total contexts: %d\n", ctx_count);
79 seq_printf(s, "Total entries: %d\n", entry_count);
80
81 return 0;
82 }
83
84 static int blog_entries_open(struct inode *inode, struct file *file)
85 {
86 return single_open(file, blog_entries_show, inode->i_private);
87 }
88
89 static const struct file_operations blog_entries_fops = {
90 .open = blog_entries_open,
91 .read = seq_read,
92 .llseek = seq_lseek,
93 .release = single_release,
94 };
95
96 /**
97 * blog_stats_show - Show BLOG statistics
98 */
99 static int blog_stats_show(struct seq_file *s, void *p)
> 100 {
101 seq_printf(s, "Ceph BLOG Statistics\n");
102 seq_printf(s, "====================\n\n");
103
104 seq_printf(s, "Global Logger State:\n");
105 seq_printf(s, " Total contexts allocated: %lu\n",
106 g_blog_logger.total_contexts_allocated);
107 seq_printf(s, " Next context ID: %llu\n", g_blog_logger.next_ctx_id);
108 seq_printf(s, " Next source ID: %u\n",
109 atomic_read(&g_blog_logger.next_source_id));
110
111 seq_printf(s, "\nAllocation Batch:\n");
112 seq_printf(s, " Full magazines: %u\n", g_blog_logger.alloc_batch.nr_full);
113 seq_printf(s, " Empty magazines: %u\n", g_blog_logger.alloc_batch.nr_empty);
114
115 seq_printf(s, "\nLog Batch:\n");
116 seq_printf(s, " Full magazines: %u\n", g_blog_logger.log_batch.nr_full);
117 seq_printf(s, " Empty magazines: %u\n", g_blog_logger.log_batch.nr_empty);
118
119 return 0;
120 }
121
122 static int blog_stats_open(struct inode *inode, struct file *file)
123 {
124 return single_open(file, blog_stats_show, inode->i_private);
125 }
126
127 static const struct file_operations blog_stats_fops = {
128 .open = blog_stats_open,
129 .read = seq_read,
130 .llseek = seq_lseek,
131 .release = single_release,
132 };
133
134 /**
135 * blog_sources_show - Show all registered source locations
136 */
137 static int blog_sources_show(struct seq_file *s, void *p)
> 138 {
139 struct blog_source_info *source;
140 u32 id;
141 int count = 0;
142
143 seq_printf(s, "Ceph BLOG Source Locations\n");
144 seq_printf(s, "===========================\n\n");
145
146 for (id = 1; id < BLOG_MAX_SOURCE_IDS; id++) {
147 source = blog_get_source_info(id);
148 if (!source || !source->file)
149 continue;
150
151 count++;
152 seq_printf(s, "ID %u: %s:%s:%u\n", id,
153 source->file, source->func, source->line);
154 seq_printf(s, " Format: %s\n", source->fmt ? source->fmt : "(null)");
155 seq_printf(s, " Warnings: %d\n", source->warn_count);
156
157 #if BLOG_TRACK_USAGE
158 seq_printf(s, " NAPI usage: %d calls, %d bytes\n",
159 atomic_read(&source->napi_usage),
160 atomic_read(&source->napi_bytes));
161 seq_printf(s, " Task usage: %d calls, %d bytes\n",
162 atomic_read(&source->task_usage),
163 atomic_read(&source->task_bytes));
164 #endif
165 seq_printf(s, "\n");
166 }
167
168 seq_printf(s, "Total registered sources: %d\n", count);
169
170 return 0;
171 }
172
173 static int blog_sources_open(struct inode *inode, struct file *file)
174 {
175 return single_open(file, blog_sources_show, inode->i_private);
176 }
177
178 static const struct file_operations blog_sources_fops = {
179 .open = blog_sources_open,
180 .read = seq_read,
181 .llseek = seq_lseek,
182 .release = single_release,
183 };
184
185 /**
186 * blog_clients_show - Show all registered Ceph clients
187 */
188 static int blog_clients_show(struct seq_file *s, void *p)
> 189 {
190 u32 id;
191 int count = 0;
192 const struct ceph_blog_client_info *info;
193
194 seq_printf(s, "Ceph BLOG Registered Clients\n");
195 seq_printf(s, "=============================\n\n");
196
197 for (id = 1; id < CEPH_BLOG_MAX_CLIENTS; id++) {
198 info = ceph_blog_get_client_info(id);
199 if (!info || info->global_id == 0)
200 continue;
201
202 count++;
203
204 seq_printf(s, "Client ID %u:\n", id);
205 seq_printf(s, " FSID: %pU\n", info->fsid);
206 seq_printf(s, " Global ID: %llu\n", info->global_id);
207 seq_printf(s, "\n");
208 }
209
210 seq_printf(s, "Total registered clients: %d\n", count);
211
212 return 0;
213 }
214
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2025-08-14 20:13 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202508150401.905dissE-lkp@intel.com \
--to=lkp@intel.com \
--cc=amarkuze@redhat.com \
--cc=ceph-devel@vger.kernel.org \
--cc=llvm@lists.linux.dev \
--cc=oe-kbuild-all@lists.linux.dev \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.