Using Time Where You Have It

General Comments Off on Using Time Where You Have It

It’s probably a basic principle of performance work. Use time where you have it, take time away where you don’t. No brainer. The approach is probably slightly less trivial, but some of the stuff we did today was pretty obvious. During the week we were experimenting with a whole bunch of pre-loading work testing out a series of cold and warm start scenarios.

And suddenly it was like, duh, why don’t we try and page in the libraries during the login experience? But doesn’t that use up time during the login? Well, no, because there’s a time slice between when the login screen pops up and when the user has entered their username and password. It’s all about making use of time cleverly. Doing a preload in the /etc/X11/gdm/Init/Default script of a whole bunch of libraries seems to shave off about 3 or 4 seconds from the login time. A simple win with no visible regressions, and there’s probably wins where that came from.

WTF are applets doing? Part 2.

General Comments Off on WTF are applets doing? Part 2.

Day 3 of the performance summit, and Alan gave an excellent presentation on the state of X, and what his team were up to. During the presentation, he mentioned a nice little utility called xrestop, which is a ‘top’ like utility that is able to trace what is happening in terms of resource usage in the X server that I had no idea about. Consequently, I created a package for Solaris [you’ll need the JDS build environment to build it though]. Thanks Alan for pointing it out, and thanks to Matthew for writing it.

Which brings me on to the title of this blog – which the screenshot below seems to highlight.

HP Get’s It!

General Comments Off on HP Get’s It!

Alan did a nice reply to HP’s real story about Niagara.

But one line caught my attention – “Be careful — there is a waterfall of change lurking around the bend”. HP get’s it! Sun is changing….and it’s just wonderful! I can only attempt to describe the change that’s happening inside Sun. There’s a whole heap of people wandering around with smiles on their faces – and if that isn’t reflected in all our recent announcements and communities we’ve built up, then you probably need to take off the blinkers.

Braindead Applets

General Comments Off on Braindead Applets

It’s amazing how a 15 line script shows out the incredibly embarassing things we’re doing. That’s what Bryan wrote yesterday. Unfortunately GNOME applets are the DTrace whipping boy yet again, and I suspect Bryan’s talk at LISA is going to focus on the stock ticker applet [again].

The plan of attack was basically the following –

  • Understand the architecture of the panel applets
  • Try to identify the main CPU applet hogs
  • For each panel applet
    • Understand what each panel applet does
    • Determine the CPU useage during idle
    • Define a set of typical user tasks and determine the typical CPU useage for each task
  • Identify the typical startup for a given panel applet
    • Define whether that startup time is different for in and out of process applets
#!/usr/sbin/dtrace -s

#pragma D option quiet

syscall:::entry
/pid != $pid && strstr(curpsinfo->pr_psargs, "Applet") != NULL/ {
    @[execname] = count();
}

tick-1sec {
    printa(@);
    clear(@);
} 

We created a number of panels, and added all the applets that were available and ran the script. The script basically searches for the string ‘Applet’ which appears in the –oaf-activate-iid exec line, and does a count of all the syscalls. Then for every second, it prints out a count like follows –

  mixer_applet2                                                    46
  gweather-applet-                                                 49

  gweather-applet-                                                 11
  mixer_applet2                                                    39

  gweather-applet-                                                 43
  mixer_applet2                                                    44
...

Fortunately it doesn’t take much work to figure out what those applets are doing on an idle desktop, without any interaction with the applets. What are they doing? Polling generally, lots of polling. Over the next day or two, we’ll be looking at creating patches to help this.

Other breakout sessions included Startup Time, GTK+ libraries, Java applications, GNOME Terminal and Firefox, and I’m sure a whole heap of people will blog their results.

The positives were that Bryan liked our lime green Sun branded wallpaper, and thought the PDF viewer [evince] was just peachy.

A Blink of Yosemite

General Comments Off on A Blink of Yosemite

John and I headed off to Yosemite for a quick trip on Saturday. We left at the crack of dawn and got back late that evening. I’ve been to Yosemite a bunch of times, but never in the winter, so it was nice to see the place looking like a ghost town. There wasn’t a huge amount of snow there, so we got a good hike up the John Muir trail towards Little Yosemite past Vernal and Nevada falls which had big flows. Lots of amazing ice formations, and wonderfully crisp cold air. Unsuprisingly, didn’t see too many climbers hanging around, but really got the tingling feeling in my fingers and toes as we walked around the huge boulders littered around the valley floor and along the trail up past the waterfalls. We were both absolutely wrecked on the trip home, but highlights include an excellent meal in a diner just outside the valley, and a quick run through with the local highway police. Really nice to get out and about though, since most of the rest of the weekend was dedicated to work.

One of the other highlights of the weekend was heading up to Alameda with Stephen to a Jazz club to see Suzanna sing. She has a pretty amazing voice, and you could really see that she was having a whole heap of fun. Great to catch up with her again, even though we didn’t have much time to chat. Hopefully we’ll catch up with her during the week too.

First Performance Win

General Comments Off on First Performance Win

Alan blogs about the first performance win of our Solaris Desktop summit – shaving a nice 3 seconds off GDM login time. Nice work Bryan, Alan, Brian and team! Apparently the patch is in the pipeline and needs a little work before it goes into CVS, but I’m sure Brian will report his findings too.

FWIW, yesterday’s session with Bryan Cantrill only amplified how fricken cool DTrace is – we should totally get this guy to keynote at GUADEC. Okay, so he dissed GNOME a hell of a lot [more later], but he’s really a super nice guy.

A Community View from Behind the Wall

General Comments Off on A Community View from Behind the Wall

As mentioned in my previous mail a number of us sat down during a set of brainstorming breakouts to talk about a rather broad topic, ‘Community Relations’. In particular, all these breakouts were supposed to focus on 2 sets of target users, Developer and Small/Medium Business System Administrator. However, much of the discussion was obviously generic enough for many projects and open source communities both within Sun and outside. We had attendees from GNOME, Mozilla, and XOrg communities – and I’d personally like to think that we had a reasonably strong idea of what community participation meant in those areas.

In this session we started off with a bit of discussion around the topic, and then started brainstorming the issues involved using stickies and a rotation mechanism. Each person in the group started writing down issues on stickies. After a set number of time, the stickies they collected were put on a sheet of paper. That sheet of paper was passed to the person on the left. As a result, each person got to see the stickies from the person on their right, which meant they could develop those issues, or think of other issues based on the stickies. Very simple, but amazingly effective, and I’ve personally never done any brainstorming like that previously.

After brainstorming to identify the main issues that were being faced, the team managed to come up with 4 main topic areas –

  • Create and Grow communities
  • Communication
  • Interactions, goals, dependencies, costs, authority
  • Mechanics, Processes, Standards, Rules, Licensing, IP

We had some interesting comments being written on the stickies –

  • VP’s talking about Open Source, but lots of employees not really groking what that means
  • Differences between proprietary projects and open source projects and how used to a given process an individual developer is
  • Enforcing old legacy processes into new environments that don’t fit
  • Management need to assign goals and growth targets for employees to measure their involvement specifically for open source development
  • Difficulty in understanding what community interaction meant
    • how much time involved
      • purely development?
      • development and mailing list/IRC interaction
      • dev/interaction/new projects unrelated to direct job
  • Hard to find information about what communities are available, how to get involved, how to build, how to grow
  • How do we expect to be successful in a community if we can’t be a community internally?

We then brainstormed the most important next steps, voting on their popularity

  1. Provide education and support for people unfamiliar with open source practices
  2. Educate all Sun employees about the realities of community relationships
  3. Clearly state Sun goals around all communities (open source and proprietary) and practices to reach goals
  4. Assess risks of diverging before forking – persuade community otherwise if possible
  5. Ensure that all community related Sun teams are leveraging each other
  6. Build infrastructure where necessary, provide info/pointers where resources already exist

Before anyone thinks that Sun has a problem with working and managing projects within open source – it’s actually quite the opposite. I could only see a set of hugely clueful people discussing the topic, continually striving for excellence on how we might be even more effective. The great thing is that we have an Open Source Council led by Simon for exactly these types of discussions, and I’m very excited to see how some of these will be addressed in the future.

Slowing Time Down

General Comments Off on Slowing Time Down

Insane, it’s already Monday again and we’re just about to start the Solaris Desktop performance summit. It’s been a crazy week, so maybe it’s time to reflect a little bit about the previous week’s activities before I plunge head deep into the next round.

I was a bit skeptical at the start of the week with the usability stuff. It’s really easy to spend the entire week talking shit, and at the end of the week have nothing to take home. But it was useful, amazingly useful. Not only has it been an excellent opportunity to meet people from right across the organization, it was a great chance to centralize our vision on our user targets and learn about some of the ways we can go about designing our software on a task based approach.

We had 2 really clueful set of talks from our VP’s Tom Goguen and Glenn Weinberg, and it was really exciting to see how closely aligned they were to the GNOME/JDS vision that we’re trying to create – and echoed many of the things that the Sun desktop team has been saying for many, many years. It’s been hugely motivating for me to hear these guys and chat with the others about the content.

We had a number of brainstorming session that were useful – everything from community relations, single system administration, usability studies, Java on the desktop, printing, Sun Ray, and some desktop sizzle. I hope to do a write up on some of the sessions at a later stage, but one of the highlights of those brainstorming sessions were the way we came up with the issues – brainstorming issues on stickies, and then rotating them around so that others could develop new ideas based on existing suggestions.

I also helped to lead a Usability Gripe session, and came up with a huge list of stuff that really, really sucked on the desktop – everything from our multimedia story, multi-session configuration, fonts, our internal release model and building the sources. It was fricken awesome…okay, there was a huge amount of crack involved, but we identified some of the real pain points people were having with the desktop. I’ll summarize this list formally and blog it later on. At the end of the session we all voted on our favourite issues – a nice fun session.

And…

General Comments Off on And…

P.P.P.S – John’s been a total stress ball, but he’s done an absolutely fantastic job pulling the conference together – we all owe him multiple beers at the very least.

Solaris Desktop Summit – Day 1

General Comments Off on Solaris Desktop Summit – Day 1

It’s amazing the assumptions you build up while communicating with people across the globe through email and IRC. More often than not, those people are completely different than the person you pictured them to be. But that’s been the cool part about the desktop summit so far. The people have been incredible and I’ve met some wonderfully motivated people. Every session I go back thinking ‘Okay, I need to talk to X, Y and Z next’ – man, it’s wonderful to be around so many talented, clueful people.

The day started off with a round table introduction of the people involved. It was fantastic with lots of new faces to meet. John has single handedly managed to get contributions from right across the software stack – everyone from GNOME, JDS, Mozilla, X, KISS, Solaris, Install, Documentation, Usability, Design, Sun Ray, i18n and Java. Lots of new faces, lots of new ideas.

It’s always nice to break the ice with the introduction ‘Apparently GNOME sucks – I’m here to fix it’. So much of the introductions were confined to the interest of a given person and a real hobby horse attitude. We need to be more diverse and open with our thinking. No software is safe – we’re going to find the nits, and fine comb them out.

After the round table, we started off trying to identify who we all believed to be the target market for our software, along with their requirements and what we personally were doing to approach that. With the diversity of all the people across different organizations we came up with a pretty complete list of users – office workers, mobile users, system administrators, server o administrators, desktop users, developers, technical and non-technical users, exporation users, VP/marketing, enterprise customers, university students, education, non-native english speakers, government and gamers. The list we gathered is probably a whole heap of circles intersecting each other, but it’s a nice start. It gives us a reference, and a great talking point.

The sessions continued with everyone showing us what they were up to, and what issues they’ve come across. We even got into a ‘X is dead’ minor flame discussion. We’re going to shelf that for a rainy day, tomorrow. I met a whole heap of really excellent people – people to bounce ideas off and get really excited with. I had this interesting conversation with Brian who talked about the infectiousness of a typical GUADEC – very much hoping to turn up the excitement and get that effect with this meeting.

So far the conference has been excellent – to the extent of wanting and needing to do this on at least a bi-yearly basis. Tomorrow brings the break out sessions where we take a set of topics – community relations, java on the desktop, single system adminstration, usability studies, death of X, install, sizzle, printing, sunray dtu with gpu and gripes – and start investigating them from a usability perspective trying to identify the tasks/problem areas we need to work on.

P.S. If anyone is living in the Bay Area – please get in touch with me so we can meet up for a beer and a bit of a chat. I’m thinking of organizing a general pub session early next week for some OpenSolaris dudes – I’ll let people know the details when I figure out a good location.

P.P.S. Dear VPs – thanks for funding the summit. While we may just look like a whole bunch of pissheads out on a social – this whole exercise has been immensely useful.

Next Entries »