hi all.

Im trying to add a jumplabel implementation into dynamic-debug,
and have run into an include-dependency problem.
Ive managed to resolve 1 problem, and am now stuck on how to use cherry-pick -m

1st, the problem Ive handled (just for setup, story)

I did a simple hotfix bisection, adding:

--- a/include/linux/dynamic_debug.h
+++ b/include/linux/dynamic_debug.h

+#include <linux/jump_label.h>

This bisect run pointed to:

    commit b202952075f62603bea9bfb6ebc6b0420db11949
    Author: Gleb Natapov <g...@redhat.com>
    Date:   Sun Nov 27 17:59:09 2011 +0200

        perf, core: Rate limit perf_sched_events jump_label patching

        jump_lable patching is very expensive operation that involves pausing al
        cpus. The patching of perf_sched_events jump_label is easily controllabl
        from userspace by unprivileged user.

That commit adds #include <linux/workqueue.h> to dynamic_debug.h,
so I split the workqueue and _deferred elements out to jump_label_deferred.h,
and updated the _deferred users.  The result builds cleanly and boots.

However, once I try adding the above hotfix patch again, I get another handful
of compile-errs (minus 1 that got fixed by above)

And now Im running into bisection troubles.
There are a 1/2 dozen patches to jump-label between Gleb's and -rc4,
which make my patch against rc4 inapplicable.

Ive tried to use the cherry-pick example from the help to pick them all up:
but it craps out (tech term)

git rev-list --reverse b2029520..dyndbg/jump-3a --
include/linux/jump_label.h  | git cherry-pick -n --stdin
error: could not apply c5905af... static keys: Introduce 'struct
static_key', static_key_true()/false() and static_key_slow_[inc|dec]()
hint: after resolving the conflicts, mark the corrected paths
hint: with 'git add <paths>' or 'git rm <paths>'

So I tried again, adding kernel/jump_label.c

git rev-list --reverse b2029520..dyndbg/jump-3a --
include/linux/jump_label.h kernel/jump_label.c | git cherry-pick -n
error: Commit 9e31905f293ae84e4f120ed9e414031eaefa0bdf is a merge but
no -m option was given.
fatal: cherry-pick failed

Ive tried several variations on -m <arg>, trying 1, 2, parent-sha,
(thats quite wrong)
I keep getting this err:

git rev-list --reverse b2029520..dyndbg/jump-3a --
include/linux/jump_label.h kernel/jump_label.c | git cherry-pick -n
--stdin -m 1
error: Mainline was specified but commit
9cdbe1cbac4ec318037297175587a0080acc9d11 is not a merge.

I find the -m help text completely unenlightening.
what is a parent number ?
where does it start from ?

Im trying to cherry pick from master to hotfix-2, I presume thats a
normal/natural usage.

are parent numbers relative to the branch Im on, or the branch Im
cherry-picking from ?
or something else completely.

Broader question:
presuming I do manage to cherry-pick the right set commits, should I
drop the -n ?
Im thinking that having a hotfix branch, and merging --no-commit would
work better,
especially when bisection lands on a commit which already contains
some of those in the hotfix branch.
Am I thinking rightly ?  Anything else to add ??

Since concrete, in-context advice would be so much more helpful than
tips using foo, bar, etc,
Ive pushed my branch to github, user jimc, branch dyndbg/jump-3a


thanks in advance.
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to