Re: [PATCH V9 01/16] rv: Add Runtime Verification (RV) interface
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- Subject: Re: [PATCH V9 01/16] rv: Add Runtime Verification (RV) interface
- From: Steven Rostedt <rostedt@xxxxxxxxxxx>
- Date: Sun, 31 Jul 2022 13:01:44 -0400
- Cc: Daniel Bristot de Oliveira <bristot@xxxxxxxxxx>, Wim Van Sebroeck <wim@xxxxxxxxxxxxxxxxxx>, Guenter Roeck <linux@xxxxxxxxxxxx>, Jonathan Corbet <corbet@xxxxxxx>, Ingo Molnar <mingo@xxxxxxxxxx>, Thomas Gleixner <tglx@xxxxxxxxxxxxx>, Peter Zijlstra <peterz@xxxxxxxxxxxxx>, Will Deacon <will@xxxxxxxxxx>, Catalin Marinas <catalin.marinas@xxxxxxx>, Marco Elver <elver@xxxxxxxxxx>, Dmitry Vyukov <dvyukov@xxxxxxxxxx>, "Paul E. McKenney" <paulmck@xxxxxxxxxx>, Shuah Khan <skhan@xxxxxxxxxxxxxxxxxxx>, Gabriele Paoloni <gpaoloni@xxxxxxxxxx>, Juri Lelli <juri.lelli@xxxxxxxxxx>, Clark Williams <williams@xxxxxxxxxx>, Randy Dunlap <rdunlap@xxxxxxxxxxxxx>, linux-doc@xxxxxxxxxxxxxxx, linux-kernel@xxxxxxxxxxxxxxx, linux-trace-devel@xxxxxxxxxxxxxxx
- In-reply-to: <20220731124730.311c8207@rorschach.local.home>
- References: <cover.1659052063.git.bristot@kernel.org> <a4bfe038f50cb047bfb343ad0e12b0e646ab308b.1659052063.git.bristot@kernel.org> <YuU7TGxm5pzmBFTx@geo.homenetwork> <0197dd47-ea15-4d8b-5fc7-e466d8a501a7@kernel.org> <YuaadlzgSJLtzOUw@geo.homenetwork> <20220731124730.311c8207@rorschach.local.home>
On Sun, 31 Jul 2022 12:47:30 -0400
Steven Rostedt <rostedt@xxxxxxxxxxx> wrote:
> But Daniel, these checks do need to be updated. Please send patches on
> top of this series to address it.
I believe what Tao is trying to say is this:
If we set RV_PER_TASKS_MONITORS greater than 1 we have:
int rv_enable_monitor(struct rv_monitor_def *mdef)
{
int retval;
lockdep_assert_held(&rv_interface_lock);
if (mdef->monitor->enabled)
return 0;
retval = mdef->monitor->enable(); <- if that returns positive, then things break.
if (!retval)
mdef->monitor->enabled = 1; <- this is not set.
return retval;
}
static int enable_wip(void)
{
int retval;
retval = da_monitor_init_wip(); <- if that returns positive, things break
if (retval)
return retval;
static int da_monitor_init_##name(void) \
{ \
int slot; \
\
slot = rv_get_task_monitor_slot(); <- if this returns positive, things break \
if (slot < 0 || slot >= RV_PER_TASK_MONITOR_INIT) \
And we probably need slot to be negative if it is greater or equal to RV_PER_TASK_MONITOR_INIT.
return slot; \
int rv_get_task_monitor_slot(void)
{
int i;
lockdep_assert_held(&rv_interface_lock);
if (task_monitor_count == RV_PER_TASK_MONITORS)
return -EBUSY;
task_monitor_count++;
for (i = 0; i < RV_PER_TASK_MONITORS; i++) {
if (task_monitor_slots[i] == false) {
task_monitor_slots[i] = true;
return i; <- if RV_PER_TASK_MONITORS > 1 then it can return positive!
}
}
-- Steve
[Index of Archives]
[Linux USB Development]
[Linux USB Development]
[Linux Audio Users]
[Yosemite Hiking]
[Linux Kernel]
[Linux SCSI]