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
--stdin
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
git://github.com/jimc/linux-2.6.git
https://github.com/jimc/linux-2.6.git
https://github.com/jimc/linux-2.6/tree/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