Weird CPU frequency usage - AT&T Samsung Galaxy S 4 Q&A, Help & Troubleshootin

So I just wanted to see how normal this is, didn't see anybody else really mention anything about this. But my phone only really seems to want to use the 1566 MHz frequency range. It almost never uses any other frequency. Any body ever really notice this or is it not really that big of a deal?
https://www.dropbox.com/s/moqxq1agsriin54/2013-07-14 14.38.13.png
Edit: And for what its worth, I'm stock rooted. Left the governor on ondemand, had the I/O scheduler set to deadline for a while but set it back to CFQ with no changes(as expected). And my max frequency is set to 1890MHz, so it should go all the way up there, but there is almost no usage of those other frequencies, especially the higher ones which was weird since there was a while when I was trying to load it up to get to the higher frequencies.
Sent from my SAMSUNG-SGH-I337 using xda app-developers app

Awizzle said:
So I just wanted to see how normal this is, didn't see anybody else really mention anything about this. But my phone only really seems to want to use the 1566 MHz frequency range. It almost never uses any other frequency. Any body ever really notice this or is it not really that big of a deal?
https://www.dropbox.com/s/moqxq1agsriin54/2013-07-14 14.38.13.png
Edit: And for what its worth, I'm stock rooted. Left the governor on ondemand, had the I/O scheduler set to deadline for a while but set it back to CFQ with no changes(as expected). And my max frequency is set to 1890MHz, so it should go all the way up there, but there is almost no usage of those other frequencies, especially the higher ones which was weird since there was a while when I was trying to load it up to get to the higher frequencies.
Sent from my SAMSUNG-SGH-I337 using xda app-developers app
Click to expand...
Click to collapse
I'm new to android, so my answer may not worth be much.. but what i've noticed in between switching roms and kernels and cpu apps, clean /dirty/whatever.. is that if you have been messing with cpu settings or voltages in any way then they will always have a small possibility of sticking even after you've deactivated or changed them back to default. the only way to get rid of these little bugs, at least for me, was to restore a stock/rooted/cwm nandroid backup or full wipe and full format under Mounts and Storage in recovery.. then flash back to the same rom i'm currently using.
basically.. the cpu can stick and you may need to reformat the system. seems to bethe case to me anyways.. hope it helps. if you can find a way to clear this issue without wiping data, please post the fix.

Related

Set cpu help/question

Ok so I have searched all over the forums and through google to find an answer to this and I can't any where so here goes. I am currently running the syndicate rom with the extreme kernal installed and when I go to use set cpu I have it set to conservative but any time I try to limit the cpu speed with the sliders it doesn't tae effect. The green numbers above the sliders will change stating my preferences but the white numbers that show the actual speed of the processor will continue to climb past my desired bottleneck. It looks like thecpu always stays between a range of 200 mhz and 1.2 ghz no matter what I set it at. If I change the style to something other than conservative it will change the behavior like performance will keep it at 1.2 or what I select and battery saver will keep it at the minimum. On demand and interactive seem to respond as well but are a little buggy and any little touch on the screen will make the processor jump straight to the maximum and stay there fr a bit which I would assume would kill my battery quite a bit faster. Does any one know if this is an issue with the phone, rom, kernal and if there is maybe a better settng than conservative or a different kernal I could use I was looking into the phoenix or fluff kernal. Any help or recomendations would begreatly appreciated. Thanks
Sent from my SPH-D700 using XDA App
Its been a long time since Ive used it (2.2.1 scales pretty good) if I remeber right,interactive is what you want to select,but on some kernels conservtive is what you want to select.I never used the profiles,I think they dont work all the time.
That's odd I never had that problem with syndicate. And I know for sure that almost every overclocking kernel recommends conservative, for some reason the other profiles can cause problems. There's a couple things that I've learned.
Conservative, for one thing, is never going to be an on demand setting. Typically it will just up the cpu to the max you set it at whenever there is some sort of activity on the phone. Which begs the question, what do you have the max set at? if its 1ghz, remember that the kernel is overclocked, so a setting of 1ghz will allow you to go to 1.2ghz. (I'm almost positive you don't want to set it at 1.2, because then it will peak higher than that) I think the max you set it to should be the listed physical limit of the processor (ours is 1ghz obviously), and the overclocking handles it from there (at least that's been my experience).
Also, remember that when there is no activity (your phones in your pocket), the cpu will be at your minimum. So you save battery in that regard, because with out setting cpu limits, like if you're running stock, I think it might run at the max all the time. (I don't that for a fact tho) again, we pretty much have to run conservative, (I've read its something to do with these hummingbirds and setcpu and overclock widget aren't built fot them) so its an all or nothing deal, you can't get "just enough" processor setting.
Try creating different conditions to help yourself out. When I had syndiccate I had a different setting for the screen being off, for being plugged in to a wall, for being plugged in to a computer, and for being below a certain battery %. Those are really cool features and help out a lot.
And as far as other roms...I use baked snack right now with his ultimate kernel. Its only sllliggghttly less stable than syndicate (but most most most defintly stable enough for a daily driver), and I get much better battery life and performance. He recommends using overclock widget, which isn't as flexible as setcpu, but defintly gets the job done. You'll have to google baked snack and find his website since they kicked him off of here.
Hope that helps, let me know if I didn't quite answer your question correctly.
Sent from my baked and emotionless SPH-D700
From my experience,you need to set it to 1.2 to activate OC...That being said,there are some kernels that need the interactive setting to work right...and 2.2.1 scales to the lowest setting when screen off even without setcpu,thats why I dont use it anymore.I will again once we have an official OC kernel for 2.2.1.
Sent from my SPH-D700 using XDA App
I actually used to have bakedsnacks rom and I liked it but it became a bit glitchy on me but I did think the battery life was a bit better. I only am using eclair as I want to wait for a final build of froyo to come out from sprint so the developers can utilize it better. I tried some of the leaked ones but I prefered the 2.1 better, all of the 2.2 ones were missing minor things that I used so I switched back. Also interactive setting just keeps the processor at max clock for a really long time before it scales back down and I didn't like that. Has anyone used the fluff ondemand kernal that is supposed to be for bettery battery life with syndicated 2.1? So I have deleted setcpu but it seemed to eat my battery faster so I put it back on. Maybe I will try some other kernal configurations since I was told that I can swap kernals without looseing data.
Sent from my SPH-D700 using XDA App
Fluff was glitchy for me,I liked Xtreme kernel the best.

Random lockups

As per the title, I have started experiencing random system lockups since yesterday. I have had to perform two battery pulls and I'm starting to worry that my ext partition won't be so lucky next time...
I have no idea what is causing the lockups, though both have occurred while using Swype. Coincidence?
For now I'm going to set my system clock back to 600Mhz and use the default input method for a while and see if I still get lockups, at which point I will probably flash another ROM unless I can find a solution, which is where you guys (hopefully) come in. Is there anything else I can do to diagnose and/or solve the problem?
- Typed from my rooted HTC Legend -
It's most likely the OC that's causing the problem, Swpye shouldn't affect the stability. Unless it's a cracked version
Try interactive governor or flash latest kernel from the other thread.
TheGrammarFreak said:
It's most likely the OC that's causing the problem, Swpye shouldn't affect the stability. Unless it's a cracked version
Click to expand...
Click to collapse
That's peculiar, as I've had the processor on 768Mhz for a while now and I've had no problems at all before now.
As for Swype... it could be. ;P
BlaY0 said:
Try interactive governor or flash latest kernel from the other thread.
Click to expand...
Click to collapse
I'll try that, but what exactly does each governor do?
segphault said:
I'll try that, but what exactly does each governor do?
Click to expand...
Click to collapse
It manages when the processor speeds up. It doesn;t run at 768MHz all the time, that's just the highest you allow. Ondemand scales the frequency up when it's needed, and lowers it again afterward. It seems to be a little bugged in our kernels though, and causes crashes.
Interactive does a similar thing, but without polling the CPU. It also ramps the frequency up a little more quickly. I use it, it makes the phone more responsive (IMO), and also eliminates the need for profiles in setCPU (to a degree)
Just checked my kernel version - I already have the latest version (2.6.32.17). I've also set the governor to interactive as suggested, but I have pushed the max clock back to 768Mhz and the min clock to 122Mhz.
While we're here, is there any way to push the min clock down even lower, or would that require fiddling with the kernel? In which case, I have two questions:
1. blay0, I've heard people who can push their min clock down to something ridiculous like 19Mhz if I recall correctly, which makes battery life last a crazy amount of time. Could you include that as the minimum clock in the next kernel for b 0.8?
2. If not, how do I go about changing it myself?
I want to learn.
segphault said:
Just checked my kernel version - I already have the latest version (2.6.32.17). I've also set the governor to interactive as suggested, but I have pushed the max clock back to 768Mhz and the min clock to 122Mhz.
While we're here, is there any way to push the min clock down even lower, or would that require fiddling with the kernel? In which case, I have two questions:
1. blay0, I've heard people who can push their min clock down to something ridiculous like 19Mhz if I recall correctly, which makes battery life last a crazy amount of time. Could you include that as the minimum clock in the next kernel for b 0.8?
2. If not, how do I go about changing it myself?
I want to learn.
Click to expand...
Click to collapse
You'd have to mess around with kernel source code. I wouldn't know where to begin, sorry
Wouldn't 19 MHz min also make the phone painfully slow to wake up? Just curious.
Sent from my Legend using XDA App
MaBlo said:
Wouldn't 19 MHz min also make the phone painfully slow to wake up? Just curious.
Sent from my Legend using XDA App
Click to expand...
Click to collapse
That did cross my mind but other users have reported success with it, so I figured I might as well give it some investigation.
I had mine go to 19 min with screen off once, it did my head in. Maybe interactive with a reasonable upper limit with screen off (like 400) would work, who knows
TheGrammarFreak said:
I had mine go to 19 min with screen off once, it did my head in. Maybe interactive with a reasonable upper limit with screen off (like 400) would work, who knows
Click to expand...
Click to collapse
Maybe not quite 19Mhz, then.
Perhaps we should do some testing to see how much processing power is needed to wake the phone quickly? Is there any way to test that?
Back on topic, I just had another lockup while using the interactive governor. This time I froze up while loading Fruit Ninja.
Now I'm at a total loss for what could be causing the lockups.
- Swyped from my rooted HTC Legend -
Seeing as nobody can seem to pin-point the problem, I'm moving to CM7 permanently as soon as it's released as stable.

SetCPU vs. CMSettings Built-in CPU manager

For those of you on CM7 (preferably RC2 or later nightlies), are you using SetCPU or the built in CMSettings CPU manager? Which is giving you better performance/battery life?
I can't help but think that the built in CM Settings CPU tuner is going to be conflicting with my SetCPU profiles.
Been using nightlies since #30 or so, and I currently run SetCPU with a normal profile, a screen off profile, and a profile for <10% battery and haven't touched CMSettings' CPU manager.
I'm contemplating just uninstalling SetCPU for a day or two and seeing what a 1017max / 245min Ondemand or Powersave governor via CMSettings ends up doing to my battery life considering there will be no screen off profile.
Any thoughts?
I dumped setCPU after a lot of testing (and even bought it on market)
I'm finding I'm much happier using inbuilt CPU settings. I think battery life is the same but performance is better due to the fact that SetCPU would sometimes get stuck in my screen-off profile when turned on causing the phone to be really slow.
I recomend uninstalling setCPU, set your ONDEMAND governor with ~1Ghz and run it... You'll find your battery about the same but much less hassle.
I have yet to try that, I somewhat feel obligated to use SetCPU since I purchased it lol. But it probably won't be the last time I waste money at the market.
Neither. CPU tuner works best for me.
Sent from my HTC Vision using XDA Premium App
Utorrent76 said:
Neither. CPU tuner works best for me.
Sent from my HTC Vision using XDA Premium App
Click to expand...
Click to collapse
its the same thing :facepalm:
Try the inbuilt one... I think its way easier
I've been wondering about this too. I don't quite understand how it works. Can I just set the frequency higher till a certain point without changing the voltage and get the same battery life?
What's the best way of doing this? Just change the clock speed or do I need to change something else or update the kernel?
Whatever you tell SetCPU to do, you'll see the same settings mirrored in the CM settings.
I say setCPU cuz as battery gets lower... I have my CPU speed lower also. Basically, 15% battery lasts me forever :] lol
Sent from my T-Mobile G2
DJAeroX26 said:
I say setCPU cuz as battery gets lower... I have my CPU speed lower also. Basically, 15% battery lasts me forever :] lol
Sent from my T-Mobile G2
Click to expand...
Click to collapse
Definitely. This is the one thing I like about SetCPU is having the 10% and 5% profiles so that I can get the last few % to last forever if I need it. Although in normal day-to-day use I'm never pushing it below 20%.
ScooterG said:
Whatever you tell SetCPU to do, you'll see the same settings mirrored in the CM settings.
Click to expand...
Click to collapse
Yea I see this, as far as the governor changing etc.. This is why I'm wondering if it would be easier on my phone to just run only the CM Settings one.
I notice that every 5th or so time I unlock the phone, there is an obvious lag switching from the screen off profile, and my unlock sliders jitter around and it takes 4-5 tries to unlock the phone. I think this is probably partially due to both settings switching over trying to change.
I think I might try backing up and uninstalling SetCPU for tomorrow to see how it goes.
colonelcack said:
I've been wondering about this too. I don't quite understand how it works. Can I just set the frequency higher till a certain point without changing the voltage and get the same battery life?
What's the best way of doing this? Just change the clock speed or do I need to change something else or update the kernel?
Click to expand...
Click to collapse
I've read on here that overclocking the Vision's CPU up to 1 GHz requires no over-volting, and in theory should not affect battery life (but not sure exactly where that information originates from). But there has been lots of debate on these forums on whether the SetCPU app helps or hurts battery life depending on screen-off profiles (underclocking to save battery) or its constant polling of the CPU clock (possibly killing the battery faster).
A kernel that supports overclocking is already part of the CM ROM. If you are on CM, you can just adjust the clock speed under Settings>CM Settings>Performance>CPU settings. Or set the CPU clock using an app like SetCPU. Choosing one method over the other is what is being asked/debated here. If you are on the stock ROM, you need to be rooted, flash a custom kernel that supports overclocking, then install an app such as SetCPU or CPU Tuner to set the CPU clock to your liking.
redpoint73 said:
I've read on here that overclocking the Vision's CPU up to 1 GHz requires no over-volting, and in theory should not affect battery life (but not sure exactly where that information originates from). But there has been lots of debate on these forums on whether the SetCPU app helps or hurts battery life depending on screen-off profiles (underclocking to save battery) or its constant polling of the CPU clock (possibly killing the battery faster).
A kernel that supports overclocking is already part of the CM ROM. If you are on CM, you can just adjust the clock speed under Settings>CM Settings>Performance>CPU settings. Or set the CPU clock using an app like SetCPU. Choosing one method over the other is what is being asked/debated here. If you are on the stock ROM, you need to be rooted, flash a custom kernel that supports overclocking, then install an app such as SetCPU or CPU Tuner to set the CPU clock to your liking.
Click to expand...
Click to collapse
I'm not sure about CM's kernel with the over-volting but I do know that Pershoots kernel can be overclocked to 979mhz without over-volting (Pershoot told me himself).
At 1.8Ghz, I find the temp settings in SetCPU very useful.
Vision rooted, booted and scooted
Daughain said:
At 1.8Ghz, I find the temp settings in SetCPU very useful.
Vision rooted, booted and scooted
Click to expand...
Click to collapse
Well obviously.... But why the hell would you ever need to be running at 1.8ghz? The fact that you are always using a temp-specific profile method should show you that consistent 1.8ghz isn't good for the phone...
Okay so I uninstalled SetCPU last night and I'm going to run just the CM Settings CPU manager all day to see how it goes. Running like this:
ONDEMAND governor
Min CPU: 245 mhz
Max CPU: 1017 mhz
On nightly #19 also.
Okay so its midnight almost, and I'm at 13hrs unplugged and 52% battery still. Pretty general/light use, phone is just as snappy and the lack of a screen off profile doesn't seem to effect battery at all. Liking it so far! very interesting to see the screen off profile not mattering much.
SetCPU for me. I like to have a temperature and charging profile, to prevent the phone from overheating. Even at 1ghz the possibility exists, nice to have a backup incase.
I'm thinking set cpu conflicting with the cm built in caused my ****ty running problems. I have not used setcpu since and been good so far
Sent from prison
tackleberry said:
I'm thinking set cpu conflicting with the cm built in caused my ****ty running problems. I have not used setcpu since and been good so far
Sent from prison
Click to expand...
Click to collapse
With multiple tries... If you change the settings on one, it cancels the settings on the other... Maybe it's because you had set on boot enabled on both?
im going to run the CM tuner and uninstall Setcpu and see how it runs. i never thought about this but i do get that lag when i turn my screen on sometimes. im gonna miss having the profiles but ill see how it runs over the coarse of a couple days.

How to get kernels set up perfect for your phone

This is a guide I have typed up on how to get the best display , sound, and battery out of your phone...
First you need to set up voodoo color with the voodoo control application on the market.
The way I did this was turn each setting all the way up and turned down gradually until the color went away. Now my display has never looked better.
Voodoo color settings differ from phone to phone due to screen use and the fact that different colors are different on certain phones. My phone is less blue than others, so I recommend that you follow that technique and do it yourself.
Voodoo profile v1
225
254
365
-15
-18
-11
My next thing I am going to talk about is sound.
In some kernels the drivers for voodoo are currently built into the kernel but not accessible via the UI.In cm7, voodoo sound doesn't exist at all. I purchased the payed version of voodoo control and the loading of the driver via that works without squealing. If you need voodoo sound, buy it. To get optimal sound, you need to tweak according to headphones. Plug in your headphones and play a song that you like with good quality audio. Now tweak the bass boost and equalizer (if your media player has one). Left side is bass(background stuff and shake), right is treble (clear voice). I usually keep the middle low and sides high.
If you have a phone that can go to 1.5ghz with ease, these are the settings I recommend.
Min: 100
Max: 1000
100 -150
200 -125
400-800 -75
Remove 900
1000 -100
Next, speed and battery. Get the voltage control app for this. Use ondemand for voltage testing it gets a wide range of frequencies. At the lower frequencies, undervolt starting at -150. Lock the phone, let it sit for a minute, if it froze, bump the voltage up to, -125. After the lowest step is set up good, change the other steps starting at the last voltage slide around the voltage control application and then idle a bit, if it freezes, move the voltage up... do the same for the next steps, starting with the voltage of the last.
Now you can test speed with governor and schedulers. I use ondemand and sio but most like lagfree and vr.
Overclocking is an option for speed but I advise against it due to.horrible, the risk of data corruption, and the decreased ability and life of your phone.
Boxer briefs.
Sent from my SPH-D700 using Tapatalk
philowneus said:
Boxer briefs.
Sent from my SPH-D700 using Tapatalk
Click to expand...
Click to collapse
I have a feeling he used swiftkey x. It changed overclocking to overclothing for me lol
sent from my touchwiz 4.5-ed epic
Damn spell cheek.
*check
Sent from my SPH-D700 using XDA App
Ive been wondering what do all the different governors do in tegrak/ voltage control? searched around, couldnt find anything
j00manji said:
Ive been wondering what do all the different governors do in tegrak/ voltage control? searched around, couldnt find anything
Click to expand...
Click to collapse
Governers tell the processor when to go to certain speeds. Comservitive keeps it lazy and not moving around much. Lagfree keeps it high when the screen is on. Performance keeps it always at the highest. Ondemand keeps it at a mix of speed and performance. Smartass and savagedzen make it low when the screen is off and scales according to demand.
Sent from my SPH-D700 using XDA App
Thanks for a great explaination and a good starting point for frequencies.
Sent from my Samurai TW.MTD Katana Clean GB Epic
Marcusant, I've been thinking about this a bunch lately. When people use profiles in something like SetCPU aren't they setting up redundant commands? In theory a well programmed governor would notice the state the phone was in and adjust according to the governor's master settings. By setting a profile would it be like having a governor running within other governors?
Profiles really **** **** up... the processor will go wherever it needs to go.
Sent from my SPH-D700 using XDA App
Thanks for this guide man. Just what I was looking for.
Sent from my SPH-D700 using XDA App
Well thanks for such a useful piece of guide and i can say information...i really wanted to know this.This is so helpful of you.Now i can get the best display , sound, and battery out of my phone trying this..I will let you know.
Thanks mate. This is working really well.
Really appreciate the guide Marc. I've never knew enough about voodoo and ocing stuff to do any good with them.
Sent from my SPH-D700 using XDA Premium App
Indeed, Marcusant, this was really helpful.
seems like you were right about the overclocking, tried these settings, plus 1200 mhz, and it was stable for a while, then the phone started rebooting on me. maybe i just need to keep messing with the voltage. anyway, what are the differences in schedulers?

Underclocking NST/G

In many of the old threads here I see recommendations about underclocking the CPU in the NST, usually with either SetCPU or No-Frills CPU Control.
Has anyone ever actually been able to get a max_freq that's lower than 800MHz (or 1000MHz with guevor's kernels), though? I never have. The setting sticks and the correct value is written to /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq (which you can also do manually from a terminal emu or adb), but the setting seems to have no effect. ./stats/time_in_state or the current freq still show that higher frequencies are used just as much. Oddly enough, increasing the scaling_min_freq does work, though I don't want to do that.
I even tried modifying the init.rc and setting a lower max_freq there, but still no luck.
Am I the only one that has this issue? Maybe it's some kind of conflict with another setting I use or something?
I'd really like to be able to use guevor's 166 kernel, but I don't want the 1000MHz overclock, since it definitely drains the battery faster when you're doing anything other than reading. Alternately, does anyone know if there's another kernel out there that works with both NoRefresh and Fastmode2, but doesn't have the overclock?
SweaterFish said:
Has anyone ever actually been able to get a max_freq that's lower than 800MHz (or 1000MHz with guevor's kernels), though? I never have.
Click to expand...
Click to collapse
Back in the day I did use No Frills CPU Control and I seem to recall being able to reduce clocking and have that persist. But that was many years and quite a few grey cells ago.
SweaterFish said:
I'd really like to be able to use guevor's 166 kernel, but I don't want the 1000MHz overclock, since it definitely drains the battery faster when you're doing anything other than reading. Alternately, does anyone know if there's another kernel out there that works with both NoRefresh and Fastmode2, but doesn't have the overclock?
Click to expand...
Click to collapse
I know I certainly had the CPU down to 800MHz, never at 1GHz. All the FastMode compatible kernels are overclocked and only 166 is able to run NoRefresh (which doesn't actually require any kernel modification, although multi-touch is nice to have with it) and FastMode (not at the same time, of course).
nmyshkin said:
I know I certainly had the CPU down to 800MHz, never at 1GHz.
Click to expand...
Click to collapse
Hm, odd. Did you ever actually confirm that the CPU didn't run at 1000MHz by looking at the time_in_state stats?
I've never been able to underclock with any kernel. My system is based on fw1.2.1 rooted with NookManager, with many small modifications and all the stock apps removed, but I don't see why any of that would affect the CPU max freq, especially in a way that would still have the min freq setting work.
The best I've been able to do is adjust the scaling governor settings to make it less likely to step up, but that doesn't work all that well.
SweaterFish said:
Hm, odd. Did you ever actually confirm that the CPU didn't run at 1000MHz by looking at the time_in_state stats?
I've never been able to underclock with any kernel. My system is based on fw1.2.1 rooted with NookManager, with many small modifications and all the stock apps removed, but I don't see why any of that would affect the CPU max freq, especially in a way that would still have the min freq setting work.
The best I've been able to do is adjust the scaling governor settings to make it less likely to step up, but that doesn't work all that well.
Click to expand...
Click to collapse
I did not get as technical as you. It's been a long time since I used one of those kernels and I only recall that there were a bunch of arcane settings in the CPU governor app which I did not fully understand but set according to some list somewhere.
As far as the app was concerned, the CPU freq was under control. Whether that was actually the case or not was beyond my pay grade.
What it comes down to is how important is FastMode to you? I personally found the ghosting intolerable. It's certainly not for reading as the fine image quality is so degraded by the dithering. In the end, USB Audio and NoRefresh were more important to me and there is no kernel that supports both of the enhanced display modes and USB host. So I didn't have to deal with the overclocking issue.
FastMode and NoRefresh have different uses, in my opinion. FastMode is nice because it keeps working even when you change apps. I use it mostly to reduce the amount of screen flashing when I'm doing things like moving files around. NoRefresh would be worse than the regular behavior since it would keep disabling.
Overall, I'd prefer to be able to use both even if it means more battery drain in some cases, which is what I've been doing for years.
I was just curious if other people had this issue or not since I've never seen anyone else mention it. The time_in_state stats are shown in both No-Frills and SetCPU and I figured most people would look at them if they were trying to adjust the freqs.

Categories

Resources