@juliusb | urg, this is very frustrating, I am wanting to push m y latest mor1kx changes | 01:22 |
---|---|---|
@juliusb | and git is being, well, a git | 01:22 |
@juliusb | I checked out the openrisc account mor1kx thingo | 01:24 |
@juliusb | then did amerge with my local version | 01:24 |
@juliusb | and now it says i'm on (no branch) | 01:24 |
@juliusb | and i can't push | 01:25 |
@juliusb | To https://github.com/openrisc/mor1kx.git ! [rejected] master -> master (non-fast-forward) | 01:25 |
@juliusb | error: failed to push some refs to 'https://github.com/openrisc/mor1kx.git' | 01:25 |
@juliusb | WTF does all of this mean?!?!? | 01:25 |
@juliusb | To prevent you from losing history, non-fast-forward updates were rejected | 01:25 |
@juliusb | Merge the remote changes (e.g. 'git pull') before pushing again. See the | 01:25 |
@juliusb | 'Note about fast-forwards' section of 'git push --help' for details. | 01:25 |
@juliusb | i swear it wasn't this difficult last time | 01:25 |
@juliusb | and the other annoying thing is that I've tried this a few times and now have like 4 versions of this merge sitting around in my gitk | 01:26 |
@juliusb | but... I can't actually seem to getrid of them or see them show uip in the git branch -a output | 01:26 |
@juliusb | so, I'm utterly confused | 01:26 |
@juliusb | for everyone telling me git is simple I have an example like this where it's just not intuitive and I have no idea where to go | 01:27 |
@juliusb | anyway | 01:27 |
@juliusb | I really don't know why this is more difficult to do | 01:27 |
@juliusb | here endeth my moaning | 01:28 |
@juliusb | :) | 01:28 |
simoncook | no branch means that the commit you have checked out doesn't have a branch associated with it (e.g. you checkout a few commits earlier to start a branch there), not sure how you can accidently get there | 01:48 |
simoncook | the non-fast-forward comes from the head you are trying to push doesn't have some commit in its history that the remote head does, probably due to merging with the non-head commit. fixing that would be a case of fetching that head, remerging what you want and pushing with the remote head (i.e. if your remote is called origin, git fetch origin;git checkout origin/master; git merge <localbranch>;git push origin master) | 01:52 |
@stekern | juliusb: it's simple if you do it right ;) | 05:18 |
@stekern | you should just 'git pull -i' openrisc/mor1k to get your most recent changes ontop of the changes I've done | 05:19 |
@stekern | you should not merge | 05:19 |
@stekern | sorry, 'git pull -r openrisc/mor1k' | 05:20 |
@stekern | i.e. rebase your work ontop of openrisc/mor1k | 05:20 |
@stekern | you 'could' (but I advise you to rebase) merge, but then you have to do it from the openrisc/mor1kx point of view, i.e. merge in _your_ changes into openrisc/mor1kx and then push those | 05:23 |
@stekern | not merging in the changes from openrisc/mor1kx to juliusbaxter/mor1kx and try to push that to openrisc/mor1kx | 05:23 |
@stekern | juliusb: with branch detection in decode stage, the largest slow down seems to be in the lsu | 05:39 |
@stekern | this would probably help on cappuccino too: https://github.com/juliusbaxter/mor1kx/commit/f4132ae00f8b51e2389b81d9c271d2ede0d899a8 | 06:21 |
@stekern | but at least the critical paths are _very_ consistant between spartan6 and cyclone IV now | 06:25 |
@stekern | it's the address calculation going through the ALU and out on the wb-bus | 06:27 |
@stekern | I'm going to try merging in that commit and see what happens, I've basically hacked that in as a test and I get ~80MHz then | 06:29 |
@stekern | It's a pity, I was hoping splitting up mem and wb would be able to solve this kind of problem, but since it's the address that is the long path it's not going to help in that case | 06:33 |
@stekern | splitting it up will be good for other reasons though, instead of always stalling one cycle when reading from dcache the pipeline will just advance | 06:37 |
@stekern | it could maybe be possible to only register the address going out on the bus, and letting address to dcache go straight there | 06:43 |
@stekern | but the path is already pretty long when it reaches the cache | 06:44 |
@stekern | hmm, but actually, why isn't the result from the alu already registered? | 07:18 |
@stekern | maybe I have misunderstood the pipeline layout of cappuccino, is the 'memstage' actually in execute stage? | 08:21 |
@stekern | I thought the original fourstage was fetch, decode, execute, wb/mem | 08:22 |
@stekern | but it's actually fetch, decode, execute/mem, wb? | 08:22 |
@stekern | that would of course make a lot more sense, now when I start thinking about it | 08:28 |
@stekern | so my mumbling about splitting wb/mem stage should really be about splitting execute/mem into seperate execute and mem stages, which will definetly help breaking that long address path | 08:32 |
@stekern | quick synthesis test with only change being, connecting lsu's alu_result_i to the registered alu_result from ctrl shows fmax 80MHz | 10:01 |
@juliusb | simoncook: thanks for the explanation | 12:15 |
jemarch | morning | 12:15 |
@juliusb | stekern: I got on the openrisc/mor1kx branch and then attempted to merge in the juliusbaxter/mor1kx work, I'm pretty sure I did something like this last time, but anyway | 12:17 |
@juliusb | I don't get the git pull -r thing. Which branch am I on when I do that and how do I push the "combined" work back to the openrisc/mor1kx repo | 12:18 |
@juliusb | stekern: I did a nice little patch for the espresso LSU which registers the address before it comes out, so breaks the path out of the ALU, also registers the err signal on the way back in, I found those as two rather large paths through the LSU | 12:18 |
@juliusb | putting the address out 1 cycle later has a 1 cycle latency hit on lookups, so not sure if it should be on all the time, but registering the error signal I think should be done always to break that path (comes in from the bus, goes all the way into the SPRs because it causes an exception) | 12:19 |
@juliusb | stekern: ah yes I see you've already seen that patch | 12:20 |
@juliusb | stekern: yes, memstage is basically in the execute stage for cappuccino, i basically merged them all | 12:22 |
@juliusb | stekern: 80MHz fmax on Spartan6? | 12:22 |
@stekern | cyclone iv | 12:31 |
@stekern | but I assume similiar on spartan6 | 12:31 |
@stekern | re git pull -r, you are on juliusbaxter/mor1kx and do git pull -r openrisc/mor1kx | 12:33 |
@stekern | and then you push that to openrisc/mor1kx | 12:33 |
@juliusb | Hmmm, OK | 12:36 |
@juliusb | I'll give it a go sometime today or tomorrow | 12:36 |
@juliusb | olof was heavying me for a release of the mor1kx | 12:38 |
@juliusb | I think that'd be an OK idea | 12:38 |
@juliusb | if we're at a stage where we're kinda happy to but a stake in the ground we should just do it | 12:38 |
@juliusb | release early, release often ;) | 12:38 |
@juliusb | maybe sometime this week, we could punch one out | 12:39 |
@juliusb | push a release of mor1kx and mor1kx-dev-env | 12:41 |
@juliusb | that'd be nice | 12:41 |
@stekern | sounds good | 12:49 |
@stekern | (latency) yeah, that's why i'd like to have a proper pipeline stage for it | 12:50 |
@juliusb | releasing on git as as easy as tagging, righT? | 13:14 |
LoneTech | spartan6 is very likely to outperform cyclone iv (6luts and shift register mode) | 13:59 |
@stekern | LoneTech: yes, but in terms of mor1kx (from what I've seen so far at least) I get very similiar results on spartan6 and cyclone iv | 15:16 |
LoneTech | ok | 15:16 |
@stekern | juliusb: you have a virtex5 setup in mor1kx-devenv, right? | 15:16 |
@stekern | ...and releasing on git is as easy as tagging | 15:23 |
@stekern | if you want to make a release, I'm happy with what I have in the tree now, the pending changes I'm working on now is going to be kind of huge | 15:25 |
@stekern | the lack of icache disable was the biggest wart waiting to get fixed | 15:25 |
@stekern | spartan6 lands on 81 MHz with the branch detection in decode and registered alu_result to lsu | 15:29 |
@juliusb | stekern: nice one, I'm seeing just under 60 for the shorter pipelines | 17:44 |
@juliusb | on spartan6 that is | 17:44 |
@juliusb | OK yes, I'd like to do a release | 17:44 |
@juliusb | actually, some housekeeping first | 17:45 |
@juliusb | I'd like to standardise the SPR units | 17:45 |
@juliusb | rather, the peripheral units | 17:45 |
@juliusb | that's a glaring issue | 17:45 |
@juliusb | can work on it this week, then once I'm happy that we've gone some way to acheiving that then I think we'll be right | 17:45 |
@juliusb | jemarch: good to see you at FSCONS this weekend man | 18:41 |
jemarch | it was nice | 18:41 |
@juliusb | stekern: now I have rebased my local stuff on your work, how do I push this to openrisc/mor1kx? | 18:44 |
@juliusb | and have it go onto the master branch there? | 18:44 |
@juliusb | my the openrisc/mor1kx remote is called openriscorg/master | 18:45 |
@juliusb | and my rebased master is just the master branch (or origin/master) | 18:46 |
@stekern | git push openriscorg master | 18:47 |
@juliusb | hmm | 18:47 |
@juliusb | i just tried to push my rebased thing to my master first and got: | 18:47 |
@juliusb | To https://github.com/juliusbaxter/mor1kx.git ! [rejected] master -> master (non-fast-forward) | 18:47 |
@juliusb | error: failed to push some refs to 'https://github.com/juliusbaxter/mor1kx.git' | 18:47 |
@juliusb | hint: Updates were rejected because the tip of your current branch is behind | 18:47 |
@juliusb | hint: its remote counterpart. Merge the remote changes (e.g. 'git pull') | 18:47 |
@juliusb | hint: before pushing again. | 18:47 |
@juliusb | but the git pull didn't work either | 18:48 |
@juliusb | I admit I didn't do a git pull I did a rebase | 18:48 |
@stekern | yes, that's natural | 18:48 |
@juliusb | am I like massively retarded or something?!?! | 18:48 |
@juliusb | haha | 18:48 |
@juliusb | I thought this would be quick and painelss | 18:48 |
@juliusb | and I thought I'd done it before | 18:48 |
@juliusb | anyway | 18:48 |
@juliusb | my crying aside, I don't know what I'm doing wrong | 18:48 |
@stekern | your not doing anything wrong now | 18:49 |
@stekern | push to github now | 18:49 |
@stekern | to openriscorg, I meant | 18:49 |
@juliusb | alright | 18:50 |
@juliusb | now that worked.... | 18:50 |
mor1kx | [mor1kx] juliusbaxter pushed 9 new commits to master: http://git.io/H1p-pA | 18:50 |
mor1kx | mor1kx/master b6ff2d7 Julius Baxter: bus_if_wb32: parameterise the burst length | 18:50 |
mor1kx | mor1kx/master b10f1c7 Julius Baxter: pronto espresso: rewrite fetch stage... | 18:50 |
mor1kx | mor1kx/master e03ee59 Julius Baxter: pronto espresso: add "sleep" functionality... | 18:50 |
@stekern | then you have two choices for your juliusbaxter/mor1kx repo | 18:50 |
@juliusb | haha wicked | 18:50 |
@stekern | 1) force push what you have now to juliusbaxter/mor1kx, you will cause headaches for people basing their work ontop of your repo, but they usually shouldn't since openrisc/mor1kx is the "official" one | 18:51 |
@juliusb | yep | 18:52 |
@juliusb | or... | 18:52 |
@stekern | 2) reset your local repo to what's in juliusbaxter/mor1kx and then git pull openrisc/mor1kx and push that | 18:52 |
@juliusb | hmm, that's probably fine | 18:53 |
@stekern | you'll end up with duplicate commits, but the repo will stay "clean" | 18:53 |
@stekern | personally, I'd treat my personal tree as a "throw away" tree | 18:55 |
@stekern | i.e. 1) | 18:55 |
@stekern | at least in the mor1kx case | 18:55 |
@juliusb | yeah fair enough, I kinda agree | 18:57 |
@juliusb | so, how do I pull openrisc/mor1kx? | 18:58 |
@juliusb | so say I have a new repo? | 18:58 |
@stekern | but both should work, 2) might generate a bit more work in the future | 18:58 |
@juliusb | i guess if openrisc/mor1kx is the main one and we're both just hacking on it and have our own trees but ultimately want to push to that one, that seems fine | 18:59 |
@juliusb | how do you usually commit to the openrisc/mor1kx? | 18:59 |
@stekern | git push | 19:00 |
@stekern | ;) | 19:00 |
@juliusb | umm | 19:00 |
@juliusb | but.. | 19:00 |
@juliusb | so you don't have an mor1kx play repo somewhere? | 19:00 |
@stekern | yes, but it's a clone of openrisc/mor1kx | 19:00 |
@juliusb | ok | 19:01 |
@stekern | local | 19:01 |
@stekern | pull openrisc/mor1kx? do you mean how you get your local repo to the state that that is in? | 19:02 |
@juliusb | yeah I guess so | 19:03 |
@juliusb | how would I then update my repo under juliusbaxter.net | 19:03 |
@juliusb | I guess, to be honest | 19:03 |
@juliusb | maybe I should just be throwing things up on branches on openrisc/mor1kx right? | 19:04 |
@juliusb | haha, that sounds odd | 19:04 |
@juliusb | i mean, putting experimental work | 19:04 |
@stekern | git reset --hard openriscorg/master | 19:04 |
@stekern | git push origin master | 19:04 |
@stekern | don't throw up on the moron! | 19:04 |
@juliusb | :) | 19:05 |
@juliusb | hmm, nope, still getting the "Updates ere rejected because the tip of your current branch is behind its remote counterpart..." | 19:10 |
@stekern | sorry, git push -f origin master | 19:12 |
Generated by irclog2html.py 2.15.2 by Marius Gedminas - find it at mg.pov.lt!