XPe SP2 bloat

L

Larry Waibel

I just installed the SP2 update and updated my target designer configuration.
It's now over TWICE the size. It added all sorts of components that I don't
need/want such as disk indexing services, distributed transaction
coordinator, and a bunch of other stuff that I'm not sure what it is but
didn't need it before. How do I get a reasonable sized (60MB or so) image
back again?
 
A

Andy Allred [MS]

Did you read the relnotes or the documentation for SP2 or search the
newsgroup archives on this subject?

Here's one example for you:
Since (for your device's protection) more features depend on the firewall in
SP2 you're footprint will naturally go up , if you choose to attempt to
*not* bring in the firewall in order to reduce your footprint, then read
this blog post after checking out the relnotes and the SP2 help:
http://blogs.msdn.com/harshs/archive/2004/10/12/241426.aspx
 
R

Roger H. Levy

I think Andy has dodged the issue. My SP1 image was about the same size as
Larry's (50-60M, which I think is huge relative to what I need it to do) but
even after removing the firewall from SP2, the image grew by 20-25M. The
real issue, I think, is the terrible job TD does in resolving dependencies.
My image is bloated because it contains many DLLs and components that have
nothing to do with my application and which will never be used but they are
pulled in because there was inadequate effort by MS in unwinding the
dependencies. If you haven't seen this, try taking a small minlogin,
command shell system and then include a telnet server and watch your image
size nearly double. Another perverse example is the need for me to have a
16M swap file because performance statistics depend on it. This got more
bizarre when I moved to ram-reg ewf on flash and found out that it's
unhealthy to have a swap file. What am I supposed to do with those two
facts?

RL
 
A

Andy Allred [MS]

Roger, checking the archives will answer some of your questions. I'm not
going to get into a debate with folks that don't read the docs and can't
supply specific information, general complaints don't enable me to provide
you answers or to target specific features for more work, if you're just
wanting to blow off steam then please say this so I can invest my time more
efficiently.

An example of a discoverable issue of yours is that a 16MB swap file is not
needed. What's needed is at least a Maximum 2 MB swap file for the perf
counters, and that is a *bug* not a functional requirement per the feature
specification so the Perf counters folks are fixing that bug in a future
release.

As for 'unwinding the dependencies', let's be clear that with very few
exceptions (like Minlogon and NTLDR), XPe uses the same binaries as XP Pro.
This means that if to effect security changes in Pro SP2 a feature needs to
introduce a dependency that was not there for SP1 or Gold, then we also have
the same dependency. Where the embedded team can come in and assist is
identifying *optional* dependency feature teams have introduced and expose
those in the configurable UI of the component. Simply unchecking the box in
the config ui for those can have dramatic effect on the footprint (and
behavior) of the feature. We also monitor features that comprise the main
features of the most popular device categories and negotiate with those
feature teams to think of the embedded customer's requirements when they are
making functional changes.

I encourage you to read the documentation and peruse the newsgroup archives
and then ask specific questions (like the perf counters deal) if you
honestly feel a dependency is weird. Otherwise there's not much I can do to
answer general questions like 'my footprint is too big' without details.
With those details you can now search the archives, if the question isn't
answered there then ask it here or file a bug via the WECRT @Microsoft.com
alias so I know someone is actually interested in using Telnet Server for
instance in a minimal system.

I'm not going to continue this thread however feel free to pile on here,
I'll monitor it but not respond. But if you have specifics then please start
new threads or file a bug, it goes right to my inbox.

Thanks
Andy

--
Embedded team blog: http://blogs.msdn.com/embedded/

This posting is provided "AS IS" with no warranties, and confers no rights.
 
L

Larry Waibel

I agree wholeheartedly! My image was fine in SP1 and probably even had a
little more than needed to do what it needs. The entire idea of XPe is to be
able to configure your OS in small components and only use what you need. SP2
has just blown that out the window. Unless I can find some way to do away
with the unnecessary crap that SP2 insists on bringing in, I'll just end up
having to stay with SP1. My target has VERY limited disk/memory and can't
just be doubled because someone didn't look closely at dependencies. It added
41 more components, some of them GUI programs, and this is a headless device!
Why would I need 'Wireless Zero Config' if there's not even a wireless device?
And what good is Indexing the disk if there's no user interface which would
look for files? This is just bizarre.
 
L

Larry Waibel

So why was I forced to bring in the firewall just because I upgraded to SP2?
This is supposed to be a componentized OS so I should have to make the CHOICE
of what I want, not be forced into it. Having to go back to the base
configuration and build it back up by hand is not my idea of good customer
service!

From: "Andy Allred [MS]" <[email protected]>
Subject: Re: XPe SP2 bloat
Date: Wed, 8 Jun 2005 21:57:29 -0700
Newsgroups: microsoft.public.windowsxp.embedded

Did you read the relnotes or the documentation for SP2 or search the
newsgroup archives on this subject?

Here's one example for you:
Since (for your device's protection) more features depend on the firewall in
SP2 you're footprint will naturally go up , if you choose to attempt to
*not* bring in the firewall in order to reduce your footprint, then read
this blog post after checking out the relnotes and the SP2 help:
http://blogs.msdn.com/harshs/archive/2004/10/12/241426.aspx

--
Andy

This posting is provided "AS IS" with no warranties, and confers no rights.

------------------
Larry Waibel said:
I just installed the SP2 update and updated my target designer
configuration.
It's now over TWICE the size. It added all sorts of components that I
don't
need/want such as disk indexing services, distributed transaction
coordinator, and a bunch of other stuff that I'm not sure what it is but
didn't need it before. How do I get a reasonable sized (60MB or so) image
back again?
 
L

Larry Waibel

My point is that I have 41 additional components (if you want I will list them
in another post) that weren't necessary before and that I appear to have no
choice about unless I go back and start my configuration over. Why should it
be our responsibility to search all around archives and start from scratch just
to get back to the point we were at before the upgrade? I don't mind having to
search, etc. to add new features but I should be able to make that choice.

From: "Andy Allred [MS]" <[email protected]>
Subject: Re: XPe SP2 bloat
Date: Thu, 9 Jun 2005 07:51:37 -0700
Newsgroups: microsoft.public.windowsxp.embedded

Roger, checking the archives will answer some of your questions. I'm not
going to get into a debate with folks that don't read the docs and can't
supply specific information, general complaints don't enable me to provide
you answers or to target specific features for more work, if you're just
wanting to blow off steam then please say this so I can invest my time more
efficiently.

An example of a discoverable issue of yours is that a 16MB swap file is not
needed. What's needed is at least a Maximum 2 MB swap file for the perf
counters, and that is a *bug* not a functional requirement per the feature
specification so the Perf counters folks are fixing that bug in a future
release.

As for 'unwinding the dependencies', let's be clear that with very few
exceptions (like Minlogon and NTLDR), XPe uses the same binaries as XP Pro.
This means that if to effect security changes in Pro SP2 a feature needs to
introduce a dependency that was not there for SP1 or Gold, then we also have
the same dependency. Where the embedded team can come in and assist is
identifying *optional* dependency feature teams have introduced and expose
those in the configurable UI of the component. Simply unchecking the box in
the config ui for those can have dramatic effect on the footprint (and
behavior) of the feature. We also monitor features that comprise the main
features of the most popular device categories and negotiate with those
feature teams to think of the embedded customer's requirements when they are
making functional changes.

I encourage you to read the documentation and peruse the newsgroup archives
and then ask specific questions (like the perf counters deal) if you
honestly feel a dependency is weird. Otherwise there's not much I can do to
answer general questions like 'my footprint is too big' without details.
With those details you can now search the archives, if the question isn't
answered there then ask it here or file a bug via the WECRT @Microsoft.com
alias so I know someone is actually interested in using Telnet Server for
instance in a minimal system.

I'm not going to continue this thread however feel free to pile on here,
I'll monitor it but not respond. But if you have specifics then please start
new threads or file a bug, it goes right to my inbox.

Thanks
Andy

--
Embedded team blog: http://blogs.msdn.com/embedded/

This posting is provided "AS IS" with no warranties, and confers no rights.

Roger H. Levy said:
I think Andy has dodged the issue. My SP1 image was about the same size as
Larry's (50-60M, which I think is huge relative to what I need it to do)
but
even after removing the firewall from SP2, the image grew by 20-25M. The
real issue, I think, is the terrible job TD does in resolving
dependencies.
My image is bloated because it contains many DLLs and components that have
nothing to do with my application and which will never be used but they
are
pulled in because there was inadequate effort by MS in unwinding the
dependencies. If you haven't seen this, try taking a small minlogin,
command shell system and then include a telnet server and watch your image
size nearly double. Another perverse example is the need for me to have a
16M swap file because performance statistics depend on it. This got more
bizarre when I moved to ram-reg ewf on flash and found out that it's
unhealthy to have a swap file. What am I supposed to do with those two
facts?

RL
 
L

Larry Waibel

Okay, I read the release notes and the blog. I recreated by Target Design
without the Firewall/ICS. It still added 15 more components, increased my size
from 60MB to 80MB (a 33% increase!). Here's the components it add that I don't
want but something in the dependencies brings them in:

Credential Management User Interface
DirectX registry info
MFC library
ndisuio
Netshell
netwcz INF
RPD server
USB 2.0 (this one I wouldn't mind having)
VC++ runtime libraries (side X side)
VC++ runtime libraries policy XPSP2
VC++ runtime libraries XPSP2
Windows script engines
Windows security editor client
WinHTTP
Wireless zero configuration

From: "Andy Allred [MS]" <[email protected]>
Subject: Re: XPe SP2 bloat
Date: Wed, 8 Jun 2005 21:57:29 -0700
Newsgroups: microsoft.public.windowsxp.embedded

Did you read the relnotes or the documentation for SP2 or search the
newsgroup archives on this subject?

Here's one example for you:
Since (for your device's protection) more features depend on the firewall in
SP2 you're footprint will naturally go up , if you choose to attempt to
*not* bring in the firewall in order to reduce your footprint, then read
this blog post after checking out the relnotes and the SP2 help:
http://blogs.msdn.com/harshs/archive/2004/10/12/241426.aspx

--
Andy

This posting is provided "AS IS" with no warranties, and confers no rights.

------------------
Larry Waibel said:
I just installed the SP2 update and updated my target designer
configuration.
It's now over TWICE the size. It added all sorts of components that I
don't
need/want such as disk indexing services, distributed transaction
coordinator, and a bunch of other stuff that I'm not sure what it is but
didn't need it before. How do I get a reasonable sized (60MB or so) image
back again?
 
G

Gordon Smith \(eMVP\)

Larry said:
Okay, I read the release notes and the blog. I recreated by Target
Design without the Firewall/ICS. It still added 15 more components,
increased my size from 60MB to 80MB (a 33% increase!). Here's the
components it add that I don't want but something in the dependencies
brings them in:

Credential Management User Interface
DirectX registry info
MFC library
ndisuio
Netshell
netwcz INF
RPD server
USB 2.0 (this one I wouldn't mind having)
VC++ runtime libraries (side X side)
VC++ runtime libraries policy XPSP2
VC++ runtime libraries XPSP2
Windows script engines
Windows security editor client
WinHTTP
Wireless zero configuration

Did you look at the log to see what components brought in each of those?
Also, what are the sizes of each of those? Choose the most attractive
target first, and find out why it was brought in. On an issue by issue
basis when you have specifics of "X now brings in Y and is size Z", it's
easier to approach MS and ask why.

It's possible that the dependancy is new *and* necessary given that SP2 may
have grown it's dependancies for real feature reasons. It's also possible
that the dependancy can be ignored if you aren't utilizing a specific
feature of component X and therefore can be manually pruned.
 
R

Roger H. Levy

I regret that Andy has chosen to turn this thread into a flame against an
individual (me) but I do feel the need to respond once -- I will not respond
again if subjected to return fire. I think I probably spend more time
seeking answers by scouring the documentation and Google archives than I
spend on developing my application. I would like to know where in MS
originated information the performance counter/pagefile relationship is
explained even if it is a bug. I found the answer via Googling in this
thread
http://groups-beta.google.com/group/microsoft.public.windowsxp.embedded/brow
se_thread/thread/11202e37bf09e7f8/f4cae48c806aaefc?q=bronx+boy+performance+w
indowsxp.embedded&rnum=1&hl=en#f4cae48c806aaefc
Note that the 16M swap file size was specified by "KM." Since I have come
to appreciate that it would be essentially impossible for anyone to develop
anything in XPe without Slobodan and KM, I trusted KM's specification of
16M. Note that the thread also states that discussion of this bug has been
echoing in the NG for 3 years. Is it "blowing off steam" to wonder about
the XPe team's level of customer commitment if a bug such as this has
lingered for 3 years?

Andy said I didn't "supply specific information" and was making a "general
complaints [that] don't enable [him] to provide ... answers." I mentioned
two issues and I've dealt with the performance/pagefile issue above. Larry
Waibel has done a good job in this thread providing specifics of all the
noise components dragged in when one tries to configure a headless, GUI-less
configuration. I see that same sort of inexplicable overload of apparently
useless components in my builds. I forget the exact numbers because I have
long since given up on using the MS telnet server but I think my statement
that adding the telnet server nearly doubled my image size is a pretty
specific issue for a system that is hyped as componentized for efficient
builds.

Roger Levy
 
K

KM

I have basically nothing to add to this already long thread.
I agree with people complaining about XPe dependency issues but I also understand that it would be almost impossible to fix this
without the entire Microsoft shifting to XPe world. I just hope LongHorn will be a different story there and LH Embedded will be the
core piece of that.


With regards to the dependency investigation for Larry, I'd like to suggest one more option that may help a little bit more than the
build logs.
There is ConfigurationExplorer (please note - not DependencyExplorer) component in the XPeTools package (www.xpefiles.com) that will
allow you to see what exactly components bring up a particular component as dependency in a current configuration.
Doesn't fix the issue but will give you a handy tool to explore the dependencies in your own configuration.
 
L

Larry Waibel

In the chat today someone pointed me to your tools and I just got done installing and using
them. I wanted to find out why in the world 'Wireless Zero Configuration' would be brought
in since I have no wireless hardware. So using your tool shows me that:

kernel32 brings in wtsapi32 (okay I would guess)
wtsapi32 brings in netman (okay I would guess since I need basic networking support)
netman brings in netshell (NOT okay since I don't need or want it)
netshell brings in credential management user interface (NOT okay since I'm headless)

This is just one example. Basically SP2 brings in 10MB of growth in the existing components
and another 10MB for 15 components I shouldn't have to have, even after going back to scratch
and taking out the Firewall. If I could get rid of the MFC Library (2MB), Netshell (2MB),
the VC++ Runtime Libraries (side x side) (3MB) and the Windows Script Engines (1.7MB) it
would sure help.

From: "KM" <konstmor@nospam_yahoo.com>
Subject: Re: XPe SP2 bloat
Date: Thu, 9 Jun 2005 12:19:13 -0700
Newsgroups: microsoft.public.windowsxp.embedded

I have basically nothing to add to this already long thread.
I agree with people complaining about XPe dependency issues but I also understand that it
would be almost impossible to fix this
without the entire Microsoft shifting to XPe world. I just hope LongHorn will be a
different story there and LH Embedded will be the
core piece of that.

With regards to the dependency investigation for Larry, I'd like to suggest one more option
that may help a little bit more than the
build logs.
There is ConfigurationExplorer (please note - not DependencyExplorer) component in the
XPeTools package (www.xpefiles.com) that will
allow you to see what exactly components bring up a particular component as dependency in a current configuration.
Doesn't fix the issue but will give you a handy tool to explore the dependencies in your own configuration.
 
K

KM

Larry,
kernel32 brings in wtsapi32 (okay I would guess)
wtsapi32 brings in netman (okay I would guess since I need basic networking support)
netman brings in netshell (NOT okay since I don't need or want it)
netshell brings in credential management user interface (NOT okay since I'm headless)

This is absolutely true. Only SP2 version of netman.dll has a static dependency on netshell.dll.
However, as you understand, it is not XPe related issue.

Without looking in to source code, we don't know exactly why Microsoft XP developers decided to add such "huge" dependecy to netman.
But just exploring the import section of netman it is really easy to find out that it only uses two functions of the netshell:
HrGetExtendedStatusFromNCS
HrIsIpStateCheckingEnabled. (these names are pretty much self-explanatory)

So, I guess, someone in XP Team just thought that instead on re-implementing these functions in netman they should re-use the code
from netshell. This is absolutely right idea in .. XP Pro world.
However, in embedded world, where you fight for minimizing image footprint, you are going to think twice before adding some libs to
your application project to leverage some functionality of other Dlls.
This is just one example. Basically SP2 brings in 10MB of growth in the existing components
and another 10MB for 15 components I shouldn't have to have, even after going back to scratch
and taking out the Firewall. If I could get rid of the MFC Library (2MB), Netshell (2MB),
the VC++ Runtime Libraries (side x side) (3MB) and the Windows Script Engines (1.7MB) it
would sure help.

Well.. You can't easy get rid of static dependencies. However, you may not use some of the features of the components you included.
Try turning off TD Autoresolve feature and not include some of the components you mentioned above. If image works stable and
acceptable enough to meet your system requirements - you are good to deploy the image without including those components.
It all comes to much testing.

--
KM,
BSquare Corp.
www.bsquare.com

From: "KM" <konstmor@nospam_yahoo.com>
Subject: Re: XPe SP2 bloat
Date: Thu, 9 Jun 2005 12:19:13 -0700
Newsgroups: microsoft.public.windowsxp.embedded

I have basically nothing to add to this already long thread.
I agree with people complaining about XPe dependency issues but I also understand that it
would be almost impossible to fix this
without the entire Microsoft shifting to XPe world. I just hope LongHorn will be a
different story there and LH Embedded will be the
core piece of that.

With regards to the dependency investigation for Larry, I'd like to suggest one more option
that may help a little bit more than the
build logs.
There is ConfigurationExplorer (please note - not DependencyExplorer) component in the
XPeTools package (www.xpefiles.com) that will
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top