{"thread":{"id":"1017","subject":"Finding what change broke ARM","startedAt":"2005-06-24T09:19:51Z","lastAt":"2005-06-24T16:03:11Z","messageCount":4,"participants":["Russell King","Alecs King","Petr Baudis","Linus Torvalds"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"5209","messageId":"20050624101951.B23185@flint.arm.linux.org.uk","threadId":"1017","inReplyTo":null,"subject":"Finding what change broke ARM","fromName":"Russell King","fromEmail":"rmk+lkml@arm.linux.org.uk","sentAt":"2005-06-24T09:19:51Z","receivedAt":"2005-06-24T09:19:51Z","isPatch":false,"sender":{"key":"rmk+lkml@arm.linux.org.uk","avatar":null},"body":"When building current git for ARM, I see:\n\n  CC      arch/arm/mm/consistent.o\narch/arm/mm/consistent.c: In function `dma_free_coherent':\narch/arm/mm/consistent.c:357: error: `mem_map' undeclared (first use in this function)\narch/arm/mm/consistent.c:357: error: (Each undeclared identifier is reported only once\narch/arm/mm/consistent.c:357: error: for each function it appears in.)\nmake[2]: *** [arch/arm/mm/consistent.o] Error 1\n\nHow can I find what change elsewhere in the kernel tree caused this\nbreakage?\n\nWith bk, you could ask for a per-file revision history of the likely\ncandidates, and then find the changeset to view the other related\nchanges.\n\nWith git... ?  We don't have per-file revision history so...\n\n-- \nRussell King\n Linux kernel    2.6 ARM Linux   - http://www.arm.linux.org.uk/\n maintainer of:  2.6 Serial core\n"},{"id":"5212","messageId":"20050624113213.GA2328@loalhost.H.qngy.gscas","threadId":"1017","inReplyTo":"20050624101951.B23185@flint.arm.linux.org.uk","subject":"Re: Finding what change broke ARM","fromName":"Alecs King","fromEmail":"alecsk@gmail.com","sentAt":"2005-06-24T11:32:13Z","receivedAt":"2005-06-24T11:32:13Z","isPatch":false,"sender":{"key":"alecsk@gmail.com","avatar":"https://avatars.githubusercontent.com/u/84553?v=4"},"body":"On Fri, Jun 24, 2005 at 10:19:51AM +0100, Russell King wrote:\n> When building current git for ARM, I see:\n> \n>   CC      arch/arm/mm/consistent.o\n> arch/arm/mm/consistent.c: In function `dma_free_coherent':\n> arch/arm/mm/consistent.c:357: error: `mem_map' undeclared (first use in this function)\n> arch/arm/mm/consistent.c:357: error: (Each undeclared identifier is reported only once\n> arch/arm/mm/consistent.c:357: error: for each function it appears in.)\n> make[2]: *** [arch/arm/mm/consistent.o] Error 1\n> \n> How can I find what change elsewhere in the kernel tree caused this\n> breakage?\n> \n> With bk, you could ask for a per-file revision history of the likely\n> candidates, and then find the changeset to view the other related\n> changes.\n> \n> With git... ?  We don't have per-file revision history so...\n\nWouldnt a 'git-whatchanged -p <candidates>' help?\n\n\n-- \nAlecs King\n"},{"id":"5217","messageId":"20050624123914.GA5393@pasky.ji.cz","threadId":"1017","inReplyTo":"20050624101951.B23185@flint.arm.linux.org.uk","subject":"Re: Finding what change broke ARM","fromName":"Petr Baudis","fromEmail":"pasky@ucw.cz","sentAt":"2005-06-24T12:39:15Z","receivedAt":"2005-06-24T12:39:15Z","isPatch":false,"sender":{"key":"pasky@ucw.cz","avatar":"https://avatars.githubusercontent.com/u/18439?v=4"},"body":"Dear diary, on Fri, Jun 24, 2005 at 11:19:51AM CEST, I got a letter\nwhere Russell King <rmk+lkml@arm.linux.org.uk> told me that...\n> When building current git for ARM, I see:\n> \n>   CC      arch/arm/mm/consistent.o\n> arch/arm/mm/consistent.c: In function `dma_free_coherent':\n> arch/arm/mm/consistent.c:357: error: `mem_map' undeclared (first use in this function)\n> arch/arm/mm/consistent.c:357: error: (Each undeclared identifier is reported only once\n> arch/arm/mm/consistent.c:357: error: for each function it appears in.)\n> make[2]: *** [arch/arm/mm/consistent.o] Error 1\n> \n> How can I find what change elsewhere in the kernel tree caused this\n> breakage?\n> \n> With bk, you could ask for a per-file revision history of the likely\n> candidates, and then find the changeset to view the other related\n> changes.\n> \n> With git... ?  We don't have per-file revision history so...\n\nWith Cogito, you can pass cg-log list of files, and it will show only\nthe history of the given files.\n\n-- \n\t\t\t\tPetr \"Pasky\" Baudis\nStuff: http://pasky.or.cz/\n<Espy> be careful, some twit might quote you out of context..\n"},{"id":"5226","messageId":"Pine.LNX.4.58.0506240824320.11175@ppc970.osdl.org","threadId":"1017","inReplyTo":"20050624101951.B23185@flint.arm.linux.org.uk","subject":"Re: Finding what change broke ARM","fromName":"Linus Torvalds","fromEmail":"torvalds@osdl.org","sentAt":"2005-06-24T16:03:11Z","receivedAt":"2005-06-24T16:03:11Z","isPatch":false,"sender":{"key":"torvalds@linux-foundation.org","avatar":"https://avatars.githubusercontent.com/u/1024025?v=4"},"body":"\n\nOn Fri, 24 Jun 2005, Russell King wrote:\n>\n> When building current git for ARM, I see:\n> \n>   CC      arch/arm/mm/consistent.o\n> arch/arm/mm/consistent.c: In function `dma_free_coherent':\n> arch/arm/mm/consistent.c:357: error: `mem_map' undeclared (first use in this function)\n> arch/arm/mm/consistent.c:357: error: (Each undeclared identifier is reported only once\n> arch/arm/mm/consistent.c:357: error: for each function it appears in.)\n> make[2]: *** [arch/arm/mm/consistent.o] Error 1\n> \n> How can I find what change elsewhere in the kernel tree caused this\n> breakage?\n\nAhhah! A real-world example of what cool things git can do. \n\nAnyway, the first starting point is _exactly_ the same as under BK, except \nthe syntax is very different, and git does it better, in fact:\n\n\tgit-whatchanged -p arch/arm/mm/consistent.c\n\nHowever, in this case nothing has changed in that file over the whole \ngit history, so you get an empty answer. Let's go to phase two, but first \na comment:\n\n> With bk, you could ask for a per-file revision history of the likely\n> candidates, and then find the changeset to view the other related\n> changes.\n> \n> With git... ?  We don't have per-file revision history so...\n\nWe don't _store_ changes as per-file revision histories, but we do store \nit in a way where finding out what happened is efficient even per-file. \nWhile a line-by-line \"annotate\" is not efficient, the \"what changed\" \ncertainly is.\n\nAnd git actually does better than BK (or _any_ per-file history thing),\nbecause \"git-whatchanged\" actually works over directories or multiple\nindependent files too, and it works purely on pathnames, so you can say\n\"git-whatchanged\" for a file that has gone away to see _why_ it went away.  \nIn most other systems it's really hard to see what happened to something\nthat isn't there any more..\n\nAnyway, the problem clearly didn't happen because of any changes to that \nfile at all, so here per-file history simply doesn't help. But never fear, \nwe're not screwed yet. In particular, you will now obviously suspect that \nsince it wasn't that _file_ that changed, and since you know what changed \nin the ARM code, it's going to be a generic linux header file change that \nscrewed you over.\n\nSo phase #2 is to do\n\n\tgit-whatchanged -p include/linux\n\n(which shows every commit that touches include/linux, and shows that part\nas a patch, thus the \"-p\"). That starts up a pager on the results by\ndefault, so we just be stupid about it and do a \"/mem_map\" to look for\nchanges that mention mem_map. Maybe we'll be lucky.\n\nEven that doesn't show a whole lot: but it does point a very suspicious\nfinger to the recently merged sparse-mem stuff from Andy Whitcroft,\nthough.\n\nAnd now you have a commit to look at, namely the \"sparsemem memory model\" \none, commit ID d41dee369bff3b9dcb6328d4d822926c28cc2594.\n\nIn fact, looking at it, I think it's simply config option changes, and\nprobably the SPARSEMEM config option that has preempted your lack of\nDISCONTIGMEM support.  But now you have somebody to blame and to ask for\nhelp from: Andy Whitcroft and Dave Hansen, whom I've cc'd.\n\nI might start phase #3 with\n\n\tgit-whatchanged -p mm/Kconfig arch/arm/Kconfig\n\nbut at this point you may already have enough of a clue that you don't \neven care any more.\n\n\t\tLinus\n"}]}