/srv/irclogs.ubuntu.com/2011/02/20/#ubuntu-devel.txt

=== highvolt1ge is now known as highvoltage
=== cjwatson changed the topic of #ubuntu-devel to: Archive: open | Development of Ubuntu (not support, not app development) | #ubuntu for support and general discussion for dapper -> maverick | #ubuntu-app-devel for application development on Ubuntu | http://wiki.ubuntu.com/UbuntuDevelopment | See #ubuntu-bugs for http://wiki.ubuntu.com/HelpingWithBugs | Current Friendly Patch Pilots:
psusicjwatson, can I pick your brain for a second about the 'p' partition separator issue for dmraid device paths?02:10
cjwatsonno point picking my brain at 2am02:10
ohsixhi, it is _very_ hard to profile things without a frame pointer on x86_64, is there a way someone could be convinced to put actual binaries with them enabled in the dbgsym packages?02:10
cjwatsonthere's not much of it to pick02:11
psusihehe... ok... maybe I'll catch you tomorrow ;)02:12
cjwatsonyou always seem to try to find me on IRC at this kind of time02:12
cjwatsonit's not really very doomed to success - even if I'm here I'm only doing mindless things :)02:13
psusihehe... I'll look for you in the morning ;)02:13
psusiwas out of the house most of today... friend's had a baby02:14
cjwatsoncongratulations (by proxy)02:14
psusihehe02:14
ohsixis there an x86_64 "debug team"? it makes apport retracing pretty ugly too02:14
ohsixright now i have to build everything myself or use 32bit, which isn't my daily driver02:15
psusiwhy is it any harder on x86_64?  I thought the debug symbols had enough information to reconstruct the stack trace without frame pointers?02:16
cjwatsondbgsym packages are just stripped symbols, not a separate build pass02:16
cjwatsonthey can't use compiler options that the original binaries didn't use02:16
psusifor that matter, why is -fomit-frame-pointer even used on x86-64?  makes sense with x86 since it has so few registers to begin with, but x86-64 has plenty.. how much difference does one more really make?02:17
cjwatsonI'm not aware of it being the default; some package must be turning it on02:17
cjwatson     `-O' also turns on `-fomit-frame-pointer' on machines where doing02:18
cjwatson     so does not interfere with debugging.02:18
ohsixpsusi: it's part of the calling convention02:18
cjwatsonunless that's the case on amd64, I don't know02:18
cjwatsonbut if it is, there should be no problem by definition02:18
psusiohsix, eh?02:18
ohsixok here it is in another form: can someone be persuaded to enable it unconditionally for all packages02:19
ohsixpsusi: the x86_64 calling convention has something to say about frame pointers02:19
cjwatsonI think we need a more specific report02:19
psusiohsix, you mean it doesn't have one at all?02:19
cjwatsone.g. which packages have this problem?02:19
ohsixcjwatson: all of X and its peripheral packages, pixman, cairo, transmission, rhythmbox (but this is just for now, i've tried profiling/debugging other packages to the same end)02:21
psusiohsix, it looks like it has ebp to me... so it should be used02:22
cjwatsonthe x86-64 ABI does not specify whether a frame pointer is used or not.02:22
ohsixehhhh02:22
psusithat's what I thought...02:22
psusijust like x8602:22
cjwatson"%rbp  callee-saved register; optionally used as frame pointer"02:22
psusithe register is there and it is suggested you use it, but you don't have to02:22
ohsixok02:22
cjwatsonhttp://www.x86-64.org/documentation/abi.pdf02:22
ohsixright, thanks for looking it up; some windows brain damage might still be muddying my thoughts on the subject02:23
psusihehe02:23
ohsixso how to get me some -fno-omit-frame-pointer, in a manner that supersedes -On02:24
psusiI'm still curious though why it is any more annoying on 64 bit than 32?  I thought that on 32 bit without frame pointers, you just couldn't get a back trace without debug syms, but with them you could?  why is that any different for 64 bit?02:24
cjwatsonlooks like it's the default on x86-64, which implies (from the gcc documentation) that it is possible to do stack frame analysis without a frame pointer on x86-6402:25
cjwatsonso I think you need a better way to drive gdb or whatever, not -fno-omit-frame-pointer02:25
ohsixsampling profilers need the frame pointer to figure out the calling sitel and it can unwind with them in each sample cheaply as well02:25
ohsixwell, it's sysprof, perf, oprofile02:26
cjwatsonif you want to build with -fno-omit-frame-pointer, you'll need to rebuild stuff yourself02:26
cjwatsonwe're not going to make an Ubuntu-specific change to diverge from the general GCC world's defaults on this02:26
ohsixif that were the case why don't up to date tools work at all? like, none of them02:27
cjwatson"if that were the case"> which statement of mine are you casting doubt upon?02:27
ohsixyou figure it might be one or two that work without frame pointers but with the "extra" undefined steps to the same end, but none of them do02:27
psusiprofiling is usually the sort of thing a developer does, not an end user, so you are expected to just build with the frame pointer I think...02:27
cjwatsonI've not noticed particular problems with gdb02:27
ohsixthe implication by gcc documentation02:27
cjwatsondebugging != profiling02:28
ohsixheh02:28
cjwatsonhttp://gcc.gnu.org/ml/gcc-patches/2010-08/msg00300.html and thread is related02:28
ohsixlooking into why the packages are doing something in situ is debugging, and yo generally do it with a profiler02:28
cjwatsonI agree with psusi.  rebuild things locally if you need additional profiling facilities.02:29
ohsixi just don't have _hours_ to find trivial problems that i want to report02:29
psusihrm... yep, looks like -O2 definitely does turn off frame pointers...02:29
ohsixrebuilding to get the information that you'd get with a frame pointer, for the stuff i'm looking at, rebuilds half the system02:30
cjwatsonsorry02:30
=== asac_ is now known as asac
cjwatsonlooks like the frame-pointer decision was taken at a level well above Ubuntu in the toolchain world, and I don't think it would be appropriate for us to undo it02:30
psusihrm... interesting.. I just compiled int main() { int x = foo(); return x; } with -O2 and it is only 2 instructions: xor %eax, %eax, and jmpq <foo>02:31
ohsixit's not undoing it heh02:31
ohsixit's "can you do this in situ" or not02:31
psusiif the profiler requires frame pointers, then no, you will have to rebuild locally to get them02:32
ohsixrebuild the entire system02:32
psusino, just what you are trying to profile02:32
cjwatsonyou can't add frame pointers to all the dbgsym packages without undoing the toolchain decision for the distribution in general02:32
ohsixi'm just talking about the magnitude of the work in order to look at trivial things02:32
psusigetting detailed timing measurements on a function by function basis is hardly looking at trivial things ;)02:33
ohsixpsusi: the 3 applicatioins that are involved need like 50 packages rebuilt02:33
cjwatsononly if you need to profile the entire stack, which isn't usually the case02:34
ohsixi understand your position but i really can't belive you don't accept that it would be nice for fixing things if it was the other way around02:34
psusiit would be nice, but it's not going to happen ;)02:34
ohsixneed the X server, libdrm libdrm-intel cairo pixman libc6 gtk some gtk engines, transmission and some of its deps, and rhythmbox02:34
cjwatsonthere are many things I accept, but they generally tend to involve things where it's kind of in time to fix them02:35
cjwatsonin this case it is far too late; the discussion should've been had way back02:35
psusithough I am curious why gcc decided to turn on omit-frame-pointer with -O2 on amd64... it doesn't seem like it would add much so I would have left it off02:35
cjwatsonpsusi: the people who did the x86-64 port thought it was a good idea02:35
cjwatsonnot so much "gcc decided"02:35
ohsixcjwatson: i'll look into this some more; i've already read the old threads some time ago, but for a distro the cost in debugability is probably too high for any point made in them02:36
cjwatsonohsix: I have to say, this is never something I have run into02:36
cjwatsonso I don't see it as a major cost02:36
ohsixwell you're not me, i try and triage every little bug i find with performance and there are a lot of them, and i can't often get satisfactory answers without days of work for even the most trivial among them02:37
cjwatsonyou're trying to make statements about the cost to the distribution for debuggability in general02:37
broderi'm still confused about not having a frame pointer is a problem - gdb can give me a backtrace for anything if i have the debugging symbols02:37
cjwatsonand I'm saying that I don't think the cost is that general02:38
ohsixbroder: sampling profilers sample ip and the frame pointer to unwind later02:38
ohsixcjwatson: it makes perf useless02:38
cjwatsonand that people doing this kind of sweeping performance work are likely to need to build substitute versions of packages anyway02:38
broderso why couldn't they just capture the stack insted02:38
broder?02:38
psusijesus christ, how the hell did gcc optimize this that much?  this function doens't even have a stack frame!02:38
cjwatsonunless you're doing performance analysis but not changing anything, which seems less useful02:39
ohsixbroder: 1000, 10000 times a second, even if they could, how would you read the traces?02:39
cjwatsonset up an autobuilder to do the builds for you, it wouldn't take long02:39
micahg!ohmy > psusi02:39
ubottupsusi, please see my private message02:39
broderohsix: you can post-process for a stack trace easily enough if that's what you want02:40
ohsixpsusi: leaf functions are beholden to their calling sites, and if they're idempotent they can be replaced entirely02:40
ohsixbroder: if you could, why doesn't perf, sysprof, oprofile or the other profilers do it?02:40
broderpresumably because nobody's implemented it yet?02:40
ohsixbroder: they need point in time samples, thats how they work02:41
broderright. they need point in time samples of the stack trace. so take point in time samples of the stack, and backsolve02:41
ohsixyou know every monotonic time x and the information it yields is statistical02:42
cjwatsonin any case, this discussion should be had with the gcc x86 backend maintainers and the maintainers of the profiling tools in question.  Ubuntu's too narrow a forum.02:42
broderohsix: yes, i understand how statistical profiling works. you're still not explaining to me why it's not possible to do that after the fact if you can extrapolate a stack trace, which debuggers experimentally can02:42
ohsixcjwatson: i don't propose changing the toolchain, that'd actually be pretty silly, it's just desirable for the stuff you actually run to let you introspect a bit02:42
psusiwow... well now I understand why amd decided that the caller should clean up the stack... that kind of upset me at first since caller cleanup usually generates smaller code.. I didn't think caller cleanup could generate both smaller and faster code sometimes02:43
cjwatsonthe stuff you actually run != the stuff somebody else actually runs02:43
ohsixbroder: if it was possible i'm pretty sure you could pick a maintained profiler today and get useful output with it02:43
cjwatsonyou can't make a coherent argument for which packages should have this treatment.  this is why it's a toolchain decision02:43
ohsixcjwatson: i guess, but not on anything else than ubuntu02:44
ohsixit's a distro decision, they either care or don't02:44
cjwatsonit would be unhealthy for Ubuntu to diverge from the rest of the x86-64 wowrld here02:44
cjwatson*world02:44
cjwatsonwhile in principle distros can change anything, I don't agree that this should generally be a distro decision02:45
ohsixthe only argument i could make, which i haven't; is that i find i need to do this very often, and its with lots of packages02:45
ohsixso you don't see the value in not having to rebuild half your system locally to do something that should be trivial?02:46
psusiohsix, why do you frequently need detailed timing measurements for every single function that a large, complex program calls?  usually you only profile the functions in the program, not every library it calls as well02:46
ohsixpsusi: while its not every, it is still a _lot_02:47
ohsixpsusi: case in point 2 applications are making a third go nuts, and theres little indication which part it is02:47
cjwatsonohsix: I see the value, but it doesn't override other considerations02:48
ohsixare there others?02:48
cjwatsonthere's also value in having our general optimisation strategy be at least vaguely similar to other distributions and to upstream!02:48
ohsixsure02:49
ohsixtheres value in everything going upstream02:49
cjwatsonhttp://old.nabble.com/x86_64-callgraph-support-td21947441.html is relevant02:49
cjwatson(sorry, nabble is annoying but I didn't find a better URL quickly)02:49
cjwatsonpoints out that oprofile should be fixed to use dwarf2 unwind information02:49
ohsixhm02:50
cjwatsonand Andi Kleen knows what he's talking about for x86-6402:50
ohsixwhat about perf? it has it already02:51
cjwatsonfix that, and now the profiler works better for everyone02:51
psusicjwatson, since your brain seems to still be working pretty well, I'm going to throw the 'p' problem at you and see if you have any thoughts on it tonight, or can sleep on it.  to sum up: dmraid and parted now always add 'p' before the partition number when figuring the device name for the partition.  gparted and kpartx only add the 'p' if the previous char is a digit.  They need to agree, so which method is right?02:51
cjwatsonI don't have a clue, I've never been able to keep this straight :)02:52
psusihehe02:52
ohsixbrb02:52
cjwatsonI would tend to trust the lower-level tools, if that's the upstream behaviour02:52
psusiI know I need to patch something to fix this for natty, but I'm having trouble deciding which02:52
cjwatsondoes the kernel code have an opinion on this?02:53
psusiwhich is lower?  dmraid and parted or kpartx?02:53
psusithe kernel just does what it is told... it doesn't care what you name it02:53
cjwatsonhm, I would probably have said dmraid but I suppose I'm not certain02:53
cjwatsonthe kernel sometimes has defaults for device names02:53
psusibut someone said that other devices the kernel used ot have to name that could end in a digit it added the 'p' only if it already ended in a digit02:53
ohsixcjwatson: since you talked me down a bit i'm gonna do more due diligence wrt. the tools i've been trying to use02:54
cjwatsonperf: http://lwn.net/Articles/409797/02:54
psusithat makes sense to me and to the gparted maintainer... so I'm tempted to patch dmraid and parted to do that02:54
cjwatsonpsusi: it's certainly more aesthetically pleasing the kpartx way02:54
ohsixcjwatson: yar i saw it in the git log for the kernel02:55
psusiI agree02:55
cjwatsonI'm a bit worried about the continuing device name transitions though02:55
cjwatsons/continuing/repeated/02:55
psusiand causes less disturbance than always adding it...02:55
ohsixah, the clincher: - only support for x86-32. I need to split some arch specific code from02:55
ohsix  generic and add at least x86-64 support.02:55
cjwatsonohsix: right, but no suggestion that it isn't possible02:55
ohsixwell now i'm just angry :D cuz i have to rebuild anyways02:55
cjwatsonpsusi: who was it that made a comment on parted-devel about several different bits of software having been carefully lined up upstream to do the right thing here?02:56
cjwatsonwas it one of the LVM guys or something?02:56
ohsixthe real problem is the rhythmbox guys aren't taking my traces and the proof i've offered in many forms as evidence thatit's doing what i say it's doing; and i'd like to get it fixed02:57
ohsixi think its the theme engine, transmission does the same thing but to a different degree; transmission just really pegs the x server doing it02:57
cjwatsonif I were debugging that sort of thing I think I would work at the X protocol level rather than at the C call graph level02:58
cjwatsonbut perhaps I shouldn't armchair-quarterback you02:58
ohsixmy laptop is my daily driver & spending a dayor two building stuff is not my idea of fun, not to mention i don't have the bandwidth to commit to get the patches02:59
ohsixi tried xtrace, it shows the operations but not why it takes so long in the server02:59
ohsixperf would show traces all the way through if it worked02:59
cjwatsonpsusi: you seem to be already having the conversation upstream, anyway, and there've been quite a few knowledgeable responses on parted-devel etc. already03:00
ohsixplus the fix wouldn't come from trace info from X, you'd sooner look to pixman/cairo, then the theme poking at it03:00
ohsixthat there are lots of probably useless messages at the connection level should be moot; cuz theres probably fixes in that area needed inboth the video driver and the theme engine03:01
ohsixi might just have to throw my hands up until circumstances are different, fetching/building so much stuff is a blocker03:02
cjwatsonpsusi: Hannes' "linux scheme since the dawn of time" is the more aesthetically pleasing one, which is good I guess03:02
cjwatsonohsix: sounds like you have great motivation to improve perf :)03:02
ohsixcjwatson: i don't know enough to judge if the effort is worth it; also the aforementioned "evidence", perf isn't good enough03:03
ohsixoh, i do have a good suggestion for apport information to gather03:04
ohsixget the theme engine name!03:04
ohsixit has a ridiculous impact on things03:05
cjwatsonthe apport maintainer is not currently logged in hre - if you want to suggest apport changes, you'll need to file a bug03:05
cjwatson*here03:06
cjwatsonsounds like a reasonable thing to collect03:06
ohsixfirst bug i'll file is against rhythmbox :]03:06
ohsixso how easy is it to rebuild everything without making a mess for a subset of the packages? i messed with apt-build to do it on a handful of packages, but that seems generally untenable03:09
cjwatsonquite a bit of work's gone into sbuild et al; I'd use that if I needed this kind of thing03:11
ohsixfrom what i do know i'd want to set the origin so it'd be easy to downgrade when i'm done, and at best provide just top level package names & have the deps handle themselves like apt does03:13
psusicjwatson, if you mean a few days ago, that would be me ;)03:15
psusicjwatson, I'm kind of disappointed at how few responses there have been though, especially from the redhat guys that maintain dmraid... I think the right thing to do is patch dmraid and parted, but I'd like some upstream approval03:17
ohsixo noes skew03:18
ohsixanother question: is there a warning displayed when partman is having its way with the disk in ubiquity03:19
cjwatsonI don't understand the question03:19
ohsixresizing or rather, interrupting a partition resize is something that's bad to do03:20
cjwatsonnormally resizers are actually very careful to ensure that interruptions are safe03:20
cjwatsonthey have to be in case of power loss03:21
ohsixi haven't seen the installer since 10.10 & i haven't resized since ever, but someone on the support channel interrupted it during a resize and lost his disks03:21
cjwatsonthen that should be a bug on the resize program, not patched around by UI in the installer03:21
ohsixeven if the resizer is perfect there are sill operations that aren't atomic and will trash the drive03:22
ohsixits just bad luck for it to happen, but it's a real risk03:22
psusioh nevermind... I see some responses now.. damn redhat mailing lists mangle reply-to header.. I didn't get the replies directly03:22
cjwatsonsuch as?03:22
ohsixheh03:23
ohsixfilesystems have metadata that aren't in sync in the same manner as they would be if they're mounted in the resizer03:23
ohsixstopping in the middle of messing with the mft on ntfs can lose all of the directory entries on ntfs03:24
cjwatsonah, ok, an abort in resize2fs when moving the inode table would be a problem, true03:24
cjwatsonI hate having to resort to UI warnings, but I suppose it might be necessary here03:24
cjwatsonfile a bug then03:24
ohsixjust a general question anyways, i know a warning would look bad and 99.99% of the time supefluous03:24
ohsixalright03:25
cjwatsonideally we would determine when the resizer is in the dangerous bit03:25
cjwatsonthat may not be feasible03:25
psusiwait, how is it not interruption safe?  resize2fs only adds or removes inode tables, not moves them afaik03:25
ohsixi'd just hate for my grandma to lose photos or anything on the computer, even though its supposed to be a safe-ish operation03:25
ohsixpsusi: power interruptions can come after the OS has asked the disk to flush something, but before it has03:26
ohsixthats not "03:26
ohsixer, that's not03:26
ohsix"vghfy89uhcgfyug03:26
ohsixnot the problem but it is the bottom line, sorry about that03:26
cjwatsonpsusi: see comment in e2fsprogs/resize/resize2fs.c above move_itables03:26
ohsixkey hitting enter with my pinky :]03:26
cjwatsonsearch for "This is scary"03:27
ohsixcjwatson: i dunno if the documentation is out there to find what operations are unsafe in reality on ntfs, and that'd be the big one03:27
cjwatsonohsix: in some modes, ntfsresize emits a warning when it's about to start with the unsafe operation03:28
cjwatsons03:28
ohsixa power removal warning would suffice03:28
cjwatsonsearch for resize_warning_msg in the source03:28
ohsixcjwatson: ah cool03:28
psusiI thought that everyone understands that resizing a partition is inherently a dangerous operation and bad things happen if the power goes out in the middle, but that resize2fs tried to make sure it would be ok, and generally did a fairly good job of it03:28
ohsixi will; you've giveb me a lot to do tonight03:29
ohsixpsusi: my mom doesn't, i do03:29
cjwatsonpsusi: the bulk of the resize (copying data around) is safe, but there's twiddling at the end that isn't03:29
psusiARGH!@$03:29
ohsixpsusi: i figure ubiquity is more for her than me :]03:29
psusithat single pixel border can't resize thing is really starting to get on my nerves03:29
cjwatsonohsix: the same problem would exist in d-i03:29
ohsixcjwatson: sure, but i didn't help her put debian on the netbook i gave her03:30
cjwatson(d-i's used in Ubuntu too)03:30
psusicjwatson, by move inode table, this code means evict inodes from the tables that are going away right?  shouldn't they be copied to the destination, then the directories updated with the new inode number?  so if interrupted then at worst you have the inode duplicated and either fsck should deal with that, or resize2fs should be able to resume?03:33
cjwatsonthe code comment says it's moving things in place03:34
cjwatsonprobably best to read the code if you have questions about it03:34
cjwatsonI'm willing to take it at its own word that it's dangerous03:34
ohsixultimately it can't be done perfectly safely like a filesystem can make some failure assurances in how it works03:34
cjwatsonthe reason I don't want a warning throughout resizing is that the time-consuming part of resizing is typically implemented safely03:35
ohsixwhat a real fs driver can do though, is have the inode in core while its messing with the file03:35
ohsixcjwatson: right03:35
ohsixsomething that just says anything about removing power should suffice03:36
psusithere's no reason it CANT be done safely... you might have to do some more work that will take longer, but...03:36
ohsixpsusi: you need some things to be atomic or restartable to be completely safe, you can't get that03:36
cjwatsonresize2fs is not notorious for emphasising performance over safety03:36
psusiohsix, sure you can03:36
cjwatsonif you can make its phase 5 safe, I'm sure they'd take a patch03:37
ohsixif resize2fs put shadow copies in the new place then updated metadata it could be safe_r_03:37
psusithat's basically what I just said I thought it did03:37
ohsixbut like i said, the lowest common denominator is power removal03:37
ohsixright03:37
ohsixfor smaller structures it might be fine03:38
ohsixthe mft on ntfs is a large part of the drive, you could fragment it in the process to make it safer, but i'd have to see what it actually does03:39
ohsixi've never had an mft split on any resizes i've donr03:39
psusias long as the mft doesn't have extents in the region you are truncating, you should not need to mess with it much when resizing03:39
ohsixnot with gparted anyways03:40
ohsixright, but its supposed to be a percentage of the drive, the volume size & the mft is set as a ratio to support a certain number of files/directories03:40
psusithat's just a mkfs default thing... don't have to maintain it when resizing03:41
psusiit gets enlarged as needed03:41
ohsixif you don't touch the mft you might not have any space for new files afer a resize03:41
ohsixits moot though, if that's not what it does, i'll have to look03:42
psusialso iirc, there was a registry key or something you could tweak to change that default size so you could decrease it to leave more free space or reserve more for many files... basically like when you set the inode ratio with mke2fs, only the mft can grow dynamically03:42
ohsixin fact i've got storage available i could just try it out03:43
ohsixpsusi: i know, but the thing is it takes 20% of the disk or more, depending on how many files are on it, my point was that if you hit the mft you could have taken all the space for actual files, and to grow the mft03:43
psusiOHHH!  when enlarging a fs, the bg descriptor table grows larger, so for block groups that contain a copy, that will shove the inode table to the right03:46
ohsixsplit mft is another problem03:46
ohsixit by chance can end up in the end, and need to be moved; iirc ntfsresize takes this into account wrt. what it is able to resize, and wont let you shrink it lower than the end of the mft03:47
psusiohsix, yea, that's what I thought03:47
ohsixunless something is restartable theres always a power danger03:47
ohsixit'd be awesome if they were though :D i see no reason why they couldn't, aside from lots of extra io for bookeeping and needing storage for it somewhere03:48
psusiI've been giving some thought to making e2defrag restartable, but it would make it so much slower and more complicated...03:48
ohsixcan't you just go by inode, then a restart is start at x? :D03:48
psusiit builds an entire new drive map in memory first, then starts relocating blocks from the old locations ot the new locations....03:49
ohsixxfs goes by AG then inode and it's just 2 integers to restart, but it's cheap to start again as well03:49
ohsixah03:49
ohsixmaybe you can whip up a magic hash to get rid of the map03:50
psusithat's why it's so fast ;)03:50
psusiif you have enough memory no block gets written more than once03:50
psusiand almost all of the IO is in large blocks... minimum seeking03:50
ohsixright03:51
psusiif you have enough memory to hold it all, it can actually manage to rewrite the whole fs in one big read and one big write03:51
ohsixthat's the best way to do it if you have some guarantees about interruptions03:51
ohsixcopying and leaving metadata to be updated until the last moment then marking the old area empty takes extra copies03:52
psusiyea... and extra seeks... right now it reads all of the inodes, updates them, writes them back, then starts relocating blocks03:53
psusierr, wait.. that's what the resize inode is for..04:02
psusiis that only needed for online resize?  can resize2fs still work offline without the resize inode?04:02
ohsixno idea04:03
cjwatsonyes04:04
psusiok, that makes sense then.. yea, phase 5 it says only runs if neccesary... not needed if you have a resize inode it sounds like04:05
psusiwhoa... copyright ted and powerquest inc?... interesting...04:06
ohsixcjwatson: http://lwn.net/Articles/380582/04:06
ohsixbroder: you might like that as well04:06
* psusi wonders what ever happened to that project to make a Linux equivalent of WinIce... that was one slick debugger04:12
SchizoBunny|homehow do you get it to do that ^^04:12
psusi?04:13
ohsixSchizoBunny|home: prefix your message with /me04:13
SchizoBunny|homeok thank you04:13
psusiohh, hehe04:14
ohsixanyways, with perf and sysprof the idea is to profile from the app all the way through the kernel, or between stuff in the kernel, the time it samples, how often it samples, and what it samples are hard constraints :[04:15
ohsixperf is _great_ too, it's a shame04:17
psusisomeone posted an interesting problem this week with gdb on askubuntu.com... if you tell gdb to print strlen(something) you get garbage results... if you assign strlen to another pointer and use that to call it instead in the gdb expression, it works...04:22
=== SchizoBunny|home is now known as SchizoBunny|ZZZ
ohsixdifferent calling convention from the gdb stack frame setup to make the call from the sound of it04:24
ohsixapparently systemtap works, but only with -fasynchronus-unwind-tables; how can i find out of that's set on ubuntu04:32
ohsixhttp://gcc.gnu.org/ml/gcc-patches/2010-08/msg00337.html uhuhuh04:33
ohsixhttp://gcc.gnu.org/ml/gcc-patches/2010-08/msg00342.html <- by who indeed04:37
* ohsix keeps looking04:37
ohsixit looks like h.j. lu just did it by fiat04:37
ohsixcjwatson: apparently the 386 abi says the same thing about the frame pointer register and its optionalness, people writing unwinders just used it if it was there; and that didn't make it to x86_6404:41
ohsixhttp://gcc.gnu.org/ml/gcc-patches/2010-08/msg00223.html04:41
ohsixhttp://gcc.gnu.org/ml/gcc-patches/2010-08/msg00354.html google engineers uncondtionally enable it on x86_6404:43
psusiohsix, from that mail it sounds like it's been the default on x86 for some time too and it suffers the same problem.. they are saying that profilers just need fixed to deal with not having a frame pointer04:51
ohsixnah it was a proposal to enable it on x8604:51
ohsixsampling profilers that work in the kernel aren't going to be fixed for that04:52
psusiumm... I read it as a proposal to enable it on -64 and the response was that x86 has been doing it for a while and not had complaints?04:52
ohsixexactly the opposite04:52
psusiand that if you fix the profiler for -64, x86 would benefit as well04:52
ohsixyes04:52
ohsixbecause _64 already has the proposed change04:53
ohsixwhich is unconditional -fomit-frame-pointer04:53
psusi>>> Can we find if oprofile works with -fomit-frame-pointer on 32bit Linux/x86.04:53
psusi>> It doesn't for user space. The problem is that you would need04:53
psusix86 already had it enabled04:53
ohsixapparently async unwind tables are enabled on x86_64 by default too04:53
ohsixpsusi: that refers to oprofile, not gcc; it's a gcc list, the posts are about enabling -fomit-frame-pointer for x8604:54
psusiohh, I see now04:55
psusiI was going to say, I thought that if you wanted -fomit-frame-pointer you used to have to explicitly enable it04:55
psusiat least for -O2... -O3 turned it on iirc04:56
ohsixit was discussed in 2004 as well http://gcc.gnu.org/ml/gcc-patches/2004-08/msg01033.html04:56
ohsixunfortunately there doesn't appear to be much discussion other than gdb working with dwarf info; gdb has an opportune time to read such things indeed ;]04:58
ohsixhttp://gcc.gnu.org/ml/gcc-patches/2004-08/msg01124.html holy hyperbole batman05:04
ohsixpoor guy05:04
=== sabdfl1 is now known as sabdfl
=== JamesPage1 is now known as jamespage
ari-tczewttx: ping10:37
gaurav_pawaskarHi guys, anybody knows algorithm to convert UTF-16 to UTF-8?????14:45
artfwoin python, I'd just call something like unicode(a, 'utf-16').encode('utf-8')14:49
gaurav_pawaskaranything in c or c++..14:49
artfwogaurav_pawaskar, there are quite a few libraries for unicode conversion, like libicu14:52
artfwoyou might also want to use something like http://utfcpp.sourceforge.net/ for a lightweight solution14:53
gaurav_pawaskarthank you artfwo...14:55
penguin42gaurav_pawaskar: I'm not sure, but iconv might be able to do it - man 3 iconv14:57
=== _LibertyZero is now known as LibertyZero
Turlhi all16:16
Turlcan someone take a look at https://bugs.launchpad.net/ubuntu/+source/libva/+bug/595661 ?16:17
ubottuUbuntu bug 595661 in mplayer (Ubuntu) "please support h264 hardware acceleration on certain intel video cards" [Undecided,Confirmed]16:17
Turlit would be great if libva could be synced from debian16:17
lamontScottK: https://launchpad.net/~lamont/+archive/ppa should have 2.8.0-0.1 once it finishes cranking through the process16:23
lamontScottK: it passed my smoketest, but it really needs a more thorough looksee before I'm comfortable uploading it, and that won't happen today while I'm sleepy...  care to take a gander?16:24
lamontand actually, that's 2.8.0-0.1~lucid116:24
debfxTurl: libva sync has already been requested: bug #72197816:32
ubottuLaunchpad bug 721978 in libva (Ubuntu) "Sync libva 1.0.8-3 (main) from Debian unstable (main)" [Wishlist,New] https://launchpad.net/bugs/72197816:32
Turldebfx: nice, let's hope it makes it in time then16:33
Otacon22humm.. I would like to know why the indicator-applet-session is taking 468MB of ram on mu ubuntu 10.0418:23
Otacon22*my18:23
ohsixOtacon22: is that what smem says?18:24
Otacon22smem?18:25
ohsixOtacon22: apt-get install smem18:25
Otacon22ok wait18:25
Otacon22in the meanwhile18:25
Otacon22USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND18:25
Otacon22otacon22 22433  0.0  6.0 829112 492468 ?       Sl   Feb06  17:23 /usr/lib/indicator-applet/indicator-applet-session --oaf-activate-iid=OAFIID:GNOME_FastUserSwitchApplet_Factory --oaf-ior-fd=3218:25
Otacon22and i have 8 GB of ram.18:25
Otacon22otacon22@PhoenixDesktop:~$ smem | grep indicator-applet18:26
Otacon2222434 otacon22 /usr/lib/indicator-applet/i     1132    27228    27629    3531218:26
Otacon2222433 otacon22 /usr/lib/indicator-applet/i    14852   484856   485257   49250418:26
Otacon22The second one should be the right one18:26
ohsixhm odd18:27
ohsixcan you post the output of /proc/22433/smaps to a pastebin18:28
Otacon22sure18:28
Otacon22http://pastebin.com/X0yNzxcB18:29
ohsixnearly 500mb heap heh, that's probably a bug, is there something you can do to make it consume a bit more ram each time you do it?18:31
Otacon22I don't know, i'm looking18:31
Otacon22I'm looking the strace in real time18:34
Otacon22Humm, nothing interesting18:35
Otacon22What could i do to investigate more about it?18:35
ohsixno idea, do you even use fast user switching?18:35
Otacon22never18:36
Otacon22i just lock the screen18:36
ohsixtheres some stuff on dbus exposed by it but i don't exactly know what, something could be using that18:36
ohsixit's only using 5 megs here18:37
Otacon22but i use to keep the pc on for long time, and it seems to happen after long time18:37
Otacon22otacon22@PhoenixDesktop:~$ uptime18:37
Otacon22 19:38:41 up 16 days,  3:45, 25 users,  load average: 0.83, 0.88, 0.7718:37
ohsix25 users?18:39
ohsixterminals right18:39
ohsixyou're using maverick right, and just regular gnome?18:39
Otacon22no, 10.04 lts18:40
Otacon22yes, regular gnome, standard theme18:40
ohsixwhatever it is, for only being 16 days it's happening pretty often, or it's a huge leak, dbus-monitor can show what might be invoking the indicator applet; and if it's not there i can't say much about what's left to look at :\18:42
Otacon22signal sender=:1.72 -> dest=(null destination) serial=484535 path=/org/ayatana/indicator/session/menu; interface=org.ayatana.dbusmenu; member=ItemPropertyUpdated18:44
Otacon22   int32 1918:44
Otacon22   string "restart-label"18:44
Otacon22   variant       string "Riavvia..."18:44
Otacon22there are a lot of this18:44
Otacon22"riavvia" is italian and means reboot18:44
ohsixok18:45
ohsixinstall d-feet, you can look at :1.72 and see what binary it is coming from18:46
Otacon22(the ram used by the indicator is growing up)18:46
ohsixsounds like you installed an update that changed the menu to restart, i dunno why it keeps being told to change it tho18:47
Otacon22Connect to session bus?18:48
Otacon22and then search for :1.72 ?18:48
ohsixyea18:48
Otacon22Unique Name: :1.7218:49
Otacon22Command Line: /usr/lib/indicator-session/indicator-session-service18:49
Otacon22indicator-session-service humm18:49
ohsixhm i'm mistaken then, i don't know what a null destination means18:50
Otacon22following the strace of indicator-session-service i see:18:53
Otacon22read(18, "\1\0\0\0\2\0\0\0\0\0\0\0 \0\0\0openvpn.client.s"..., 1024) = 4818:53
Otacon22read(18, 0x26372e0, 1024)               = -1 EAGAIN (Resource temporarily unavailable)18:53
Otacon22maybe some trouble with a vpn?18:53
Otacon22(the ram used by the indicator is still growing up)18:55
ohsixcould be, i dunno why session service is taking all the memory though18:55
Otacon22What should i do? just kill and restart it or do you have some others ideas to try?18:59
ohsixi'm getting about 2 messages a minute to my session indicator19:08
ohsixehh, you can kill it; i was more looking into an out & out direct cause of the memory growth19:08
ttxari-tczew: pong?19:45
ari-tczewttx: is it worth merging maven-ant-helper 7.2 from Debian?19:45
ttxari-tczew: looking19:46
ttxari-tczew: it's worth it only if we need it as a build-depend on something else19:48
ttxari-tczew: so I'd wait until we actually *need* it19:48
ari-tczewttx: there is no DEPWAIT on maven-ant-helper.19:49
ttxari-tczew: right, so my answre would be: no. :)19:49
ari-tczewttx: OK.19:50
=== ogra is now known as Guest96219
=== Guest96219 is now known as ogra_

Generated by irclog2html.py 2.7 by Marius Gedminas - find it at mg.pov.lt!